Una forma es usar cronjobs. Le dices al cronjob que envie X cantidad de correos cada Y tiempo.
Para que el cronjob sepa a quien fue el ultimo en enviarsele el correo, usa algun archivo de texto plano.
Con respecto a lo de controlar la salida:
http://www.php.net/manual/en/ref.outcontrol.php
Echale una mirada a ob_start y flush