Lo que pasa es que con print ob_get_contents() estas mandando el contenido del buffer, y despues son ob_flush() haces exactamente lo mismo que antes. O sea estas haciendo lo mismo 2 veces.
Otra posibilidad que tienes, antes de complicarte con buffers, es llamar a flush() al inicio del script. Esta funcion vomita (jejeje me gusto la palabra de e-miliox) cada instantaneamente (o x lo menos intenta)
http://ar2.php.net/flush
Tmb, en el php.ini hay una directiva que se llama implicit_flush que hace lo mismo. Podrias leerte esto...
http://ar2.php.net/outcontrol
Como veras, H0m3r0J4y lo que dices no es exactamente cierto.
Saluditos!