When I first posted this question I had strong coupling between my web service and application controller where the controller needed to open multiple threads to the service and
Not sure if this solution fits your particular task, but anyway:
When your application asks for the first page, return it as soon as it's ready and put the whole bunch of collected/merged data to cache so when the next page is required you may use what is already prepared.
But note that you won't get the most up-to-date data, configure cache reloading interval cautiously.