The key thing here is the following:
Transfer-Encoding :
chunked
Chunked transfer encoding is described here.
In a nutshell chunked transfer encoding allows the server to send large content in a sequence of chunks without first having to determine the size of the content before sending. This allows the server to be much more efficient about how it loads the content from storage in order to send it the client.
I think that you need to speak with your client and tell him that if the server provides a valid, accurate Content-Length in the response headers then you can provide a progress report, but otherwise you cannot. Alternatively are you able to make an initial request to get information about the content (including the content size) and then make a second request for the content itself? If so, then you are able to provide a progress report.