Итак, я думаю, что у вас заканчивается порт Маха . Мне кажется, что вы запускаете поток для каждой отдельной ячейки в своей таблице, а затем все они пытаются запланировать выполнение задач в главном цикле выполнения после их завершения. Это приведет к стрессу вашей системы.
Я бы создал NSOperation для каждого изображения и запланировал их все в одном NSOperationQueue. Среда выполнения будет использовать пул потоков, настроенных на конкретную систему, для выполнения всех операций.
Для такой простой вещи, как это, вы также можете использовать GCD, как говорит Оскар, но я недавно прочитал в списке Apple, что NSOperationQueue предпочтительнее, потому что это более высокий уровень. Это дает вам больше возможностей для контроля того, что происходит с вашими фоновыми задачами.