The problem you have is that PHP code is executed on the server when the page is requested..
So what happens is the sleep() function is causing a pause before the HTML is sent to the user browser..
Does that make sense?
To get the page to output your values in increments you will need to use a client side script
such as JavaScript.
you could do something like this..
<?php
$roll=rand(1, 6);
$time=0;
echo'<script>';
for($i=0;$i<$roll;$i++){
echo'
setTimeout(function(){document.write("<div>'.rand(1,6).' & '.rand(1,6).'</div><br/>")},'.$time.');';
$time+=2000;}
echo '
</script>';
?>
(The newlines in the echo commands help your output JavaScript to be readable from the source)
if $roll was = 3 / It would look something like this
<script>
setTimeout(function(){document.write("<div>3 & 4</div><br/>")},0);
setTimeout(function(){document.write("<div>1 & 2</div><br/>")},2000);
setTimeout(function(){document.write("<div>4 & 1</div><br/>")},4000);
</script>
however if you need to remember your dice values you would need to put them in an array..
for($i=0;$i<$roll;$i++){
$dice[$i]=array(rand(1,6),rand(1,6));
echo'
setTimeout(function(){document.write("<div>'.$dice[$i][0].' & '.$dice[$i][1].'</div><br/>")},'.$time.');';
$time+=2000;}