Um, you're using sync requests? Almost always the wrong choice. And it's no surprise that you aren't getting a redraw, since sync means everything happens in one big run-to-completion.
Better: use async requests. When you get an onsuccess, insert the result at the position based on the original input array. Does that make sense so far? This is aside from the question of spacing out/reducing a very large number of XHRs. -- S.
