If it is related to loading times then try reducing the number of images temporarily to see if it behaves better. If this is the case then creating timeouts may not help as it (I'm assuming) needs to wait until the first drawImage completes before starting the second, etc..
Hopefully this is not the issue as it may prove tricky to stagger the image-drawing.
Try outputting the variable information each time within the loop:
console.log(sourcepointer); // etc.
and examine this information within the browser's console (F12).
Disclaimer: I haven't done much work with canvas.