используйте замыкание например:
(function(){
var counter=0;
var i;
/*не самый хороший вариант.я бы прдпочел следующий
for (var i=0;i<20;i++){
img = new Images();
img.src = 'www.example.com/' + images[i];
}*/
for (i=0;i<20;i++){
img[i] = document.createElement('img');
img[i].src = 'www.example.com/' + images[i];
img[i].onload=function()
{
var i;//var тут просто обязателен, так как это ЗАМЫКАНИЕ
if(counter<20)
{
counter++;
}
else
{
//тут выводим все рисунки
image_container=document.getElementById('images');
for (i=0;i<20;i++)
image_container.appendChild(img[i]);//присоединяем рисунок
}
}
}
})()
за правильность кода не уверен, не запускал.
но общий смысл таков