E' possibile fare qualsiasi barra di scorrimento

basta usare javascript...echo e www.php.net/flush

dopo di che
tu lanci 3000 volte il comando mail?

ti conviene usare il BCC ovvero il carbon copy nascosto, in questo modo ne lanci 100 per email e quindi lanci solo 300 volte il comando mail

cmq c'è anche il comando
http://it.php.net/manual/en/function.set-time-limit.php

ogni volta che lo reimposti ricomincia il conteggio da zero ^^