No, .. así no trabaja PHP por defecto.
PHP genera tu "página HTML" (lo pongo entre comillas por qué en realidad no es "HTML" sólo sino cualquier "salida" que tu script genere, y eso depende del "cliente" y de lo que compongas: HTML normalmente para un navegador .. pero podría ser XML, etc ...) resultante hacia un buffer, cuando tu script termina su ejecución ahí se entrega el buffer de salida al cliente (tu navegador en tu caso) ..
PHP dispone de funciones para "forzar" a que entregue todo lo que tenga en el buffer de salida cuando lo quieras .. por ejemplo:
flush()
www.php.net/flush
Tendrías que usarlo justo antes de tu "echo" que tienes en tu bucle.
Por lo demás .. esto tampoco te asegura que sea "fiel" la entrega del buffer de salida .. algunos navegadores no empiezan a interpretar su parte (lo que reciben) hasta cierta cantidad de bytes recibidos .. además que lo que "envias" por este método es poco controlable.
Deberías usar otras técnicas como por ejemplo lo que está de moda hoy en día: AJAX (que disponemos un foro temático para tal fin) e implementarlo con esas técnicas.
Un saludo,