try it
var counterInc = 0;
var counterMax = 10;
var timeoutId = window.setInterval(function() {
$('#results').text(counterInc++);
if (counterInc >= counterMax) {
window.clearInterval(timeoutId);
}
}, 500);β
http://jsfiddle.net/GufCs/4/
What happened was that you timeout updated the cell every three seconds, however, your cycle can go through an absurd number of numbers in 3 seconds, so it has already been completed by the time the function runs in setTimeout.
500 ( 3000 ), . , counterMax.