Да, скорее всего тебе нужно наплодить много-много cell'ов. Но даже такой вариант не гарантирует, что все инстансы Kinetic.Image не будут делить между собой один-единственный Image, который есть DOM-элемент и его нельзя прикрепить сразу в несколько мест.
Попробуй так:
function grid () {
var gridImg = new Image();
gridImg.onload = function () {
var gridLayer = new Kinetic.Layer();
for (var y = 40; y < 480; y += GRID_SIZE) {
for (var x = 40; x < 640; x += GRID_SIZE) {
gridLayer.add(new Kinetic.Image({
'x': x, 'y': y,
'image': gridImg
}));
}
}
stage.add(gridLayer);
};
gridImg.src = "Cell.png";
}