It happens because the loader takes time to show the thumbnail. When the cells are reused, it retains the image from the previous cell so if the loader takes time, it shows the old image for a while before loading the new image. You have to clear it before calling the loader.
holder = (SuggestionViewHolder) convertView.getTag();
// 2) and 3) The view is already created...
YouTubeThumbnailLoader loader = thumbnailViewToLoaderMap.get(holder.thumbnailView);
// ...and is currently being initialized. We store the current videoId in the tag.
if (loader == null) {
holder.thumbnailView.setTag(videoId);
// ...and already initialized. Simply set the right videoId on the loader.
} else {
holder.thumbnailView.setImageBitmap(null);
loader.setVideo(videoId);
}