this is the way i would do it:
execute the script from the browser
after each email (or every 10...) is sent, a new javascript command is sent to the browser, which changes the percentage number, the picture, the bar graph, etc. You would do something like this:
echo "<SCRIPT>document.myimage.src='$percent.gif';</SCRIPT>\n";
flush();
For this example, you would have a gif image for each percentage possible.
BUT as I typed this, I realised that Apache for win32 buffers output, so the js code would be executed at the same time when it finished. You would probably need a *nix system or IIS(not sure) to do this method, but im pretty sure Apache+Win32 doesnt do this.
IE (and other browsers) has a maximum of header redirects to avoid an endless loop. Use a client side method like JS or a META refresg tag. While we're on the subject of client side redirection, why cant you just print the status of the sequence on each page, and as it JS/META redirects, with the next page loading the status will be displayed.