Yes. Kinda. You can get a Reader from the fetch Response, and add the size of the different chunks while it's downloading. Comparing it with the value in the Content-Length header would give you a progress percentage.
Except that in this specific case, since it's gzipped, it won't work: Content-Length is zipped bytes (say, 1.4MB) and the Response.body.Reader returns uncompressed chunks, so your size will add to the final uncompressed size (6.8MB). You end up with a progress of ~500%.
There's no workaround for that, except adding an extra header from the server with the uncompressed size, but since that has to happen on the
rcsb.org domain, it's pretty difficult to achieve.
With time the web platform will provide some mechanism to monitor values of Streams, but right now there's no way to do it properly.
The best solution would be to guess an average compression rate for the PDB files, and apply it to the method detailed above.