Зависать на скроле могут из-за большого веса самой картинки или если их много в одной ячейке, может быть из-за того, что картинку не на мейн потоке присваиваешь, а накладываются друг на друга, если я верно тебя понял, из-за того, что у тебя ячейки переиспооьзуются у тебя запрос старый еще ответ не вернул, а новый уже пришел и она ставит картину сначала актуальную, а потом приходит по старому запросу ответ и ставит свое. Работа с потоками, все проблема там, копай туда.