Just to flesh it out I have in mind something like this:
% URLREAD2L with a listner
[output, extras, listner] = urlread2l(url, method, body, headers)
set(listner, 'Callback', @onStream)
or, better, as part of varargin to urlread:
[output, extras, listner] = urlread2l(url, method, body, headers, ...
'Callback', @onStream)