Я не знаю ни одного встроенного способа для достижения этой цели, но, похоже, у вас уже есть что-то, работающее с другим потоком.
Предполагая, что единственной оставшейся проблемой является недействительное содержимое ячейки, когда оно возвращается в поле зрения, вы должны взглянуть на:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
Реализуя этот метод делегата, вы можете проверить содержимое ячейки перед ее прорисовкой, чтобы увидеть, нужно ли ей новое содержимое. Если это произойдет, вы можете очистить содержимое ячеек и снова запустить загрузку с многопоточностью.
Вы можете также рассмотреть возможность размещения некоторого кода.