Hola,
Puede que el fallo sea que para optimizar la circulacion por la internete, los datos se mandan en paquetes de cierta longitud. Puede que tu servidor web almacene toda la salida de PHP hasta que ocupe cierto tamaño, y en ese momento lo envia.
Puedes probar a usar la funcion flush() (
www.php.net/flush) despues de cada elemento. Aunque tambien recuerda que el navegador web tiene que permitir mostrar elementos no concluidos. Por ejemplo, algun navegador no muestra el contenido de una tabla hasta que recibe el </table>.
Saludos.