If you can build a way for the process to report on its status (such that another script can then monitor it), you can likely convert the whole thing to use what's called 'server push'.
There's a few different variations, but the methods that I've used are the multipart/x-mixed-replace trick, where you send multiple HTML documents with status updates and then the final one when done. I've also used more 'web-app' type systems, where the page is set up, but populated/updated with javacript after the initial draw. I find the first one easier, but not all browsers (eg, IE) support it.
In any case, you need to make sure that your server is treating your CGIs as 'NPH' (non-parsed-headers ... ie, it won't wait for all of the content to come down before it emits it to the client).