That's sorta up to yourself, mate.

Generally, if you get pictures from "outside" the compiled build, it's recommended to use UITexture, as you can't really pack a new Atlas with external images.
As for when and how to cache them, that depends on how much you got. You can have some script outside of the wrapcontent download the images and use a placeholder until they are cached, or have some sort of cap on how many you want to cache, or even look at which elements are shown now, to predict which will be shown next (say +-10 elements) and only cache those. The complexity is really up to yourself.