По моему ваш код и так заработает, на один цикл меньше и в n раз быстрее:

Код AS3:
for (var col:int=0; col<slots; col++)
{
for (var row:int=0; row<slots; row++)
{
if (grid[col][row].targ)
{
container.addChild(grid[col][row].targ);
}
}
}
А если в каждом объекте, кроме координат, хранить показатель его глубины (и не забывать пересчитывать, при изменении координат), то можно значительно все ускорить:

Код AS3:
// каждый объект имеет координаты x,y и параметр zIndex
obj.x = 3;
obj.y = 34;
obj.zIndex = obj.x + obj.y * 10000;
// сортируем все объекты по zIndex
objArr.sortOn("zIndex", Array.NUMERIC)
// массив содержит уже отсортрованные объекты, просто добавляем
for each(var o in objArr)
container.addChild(o)