I haven't really dug into that issue, but I am getting into this topic in case any truly elegant solutions present themself.
It gets kind of tricky, because the only way to really monitor the progress on the client side you need to escape from the sandbox and get into the client's files. The only way to really do that is using activeX controls, so such a script would only work for those who do not have the sense to turn activeX off. Of course, those are probably the same people who are impatiently pushing away at that button.
For a pure javascript solution, you would need to have PHP compute the estimated upload time then pass the variables to the javascript file which is also kind of tricky because you do not have any way of knowing what they are uploading until they actually push the button!
Here is a pop-up status bar that you seed with the variables:
http://www.javascriptkit.com/script/script2/progressbar.shtml
Here is a progress bar that displays in the webpage:
http://www.faqts.com/knowledge_base/view.phtml/aid/2250
If you figure out a slick or reliable way to make either work, come back and post it here!
[EDIT]Upon further perusing, the second link I posted does offer a way to dynamically update the status bar while uploading via flushing the page. Looks like it might be worth a try[/EDIT]
JAVA applets might offer more methods and be an alternative too, I haven't looked into that.
If you do a google search, the key words would be "progress bar" or "progress indicator"