Hi - so I was thinking about your project, and the I'm thinking that:
First, using a worksheet function is not the best/quickest approach if, as it seems, you really only need to do it the one time. All you really need to do is download the images, and have them added to the spreadsheet - and on that front, we're in luck - the code is all there anyway, it just needs to be tweaked (by me) to be usable beyond the worksheet function context.
Second, the problem you're experiencing re: speed and size is conceivably solvable by (not meaning to sound facetious, but) changing the size of the images. The example URLs you sent through on Amazon servers were of varying sizes - one was tiny and one was gargantuan (<-an underused word). Depending on what your needs are, what we could do is create thumbnail/smaller versions of the downloaded photos if they happen exceed certain width/height dimensions. And then you could insert those thumbnail versions. Fortunately, the code for that is already written by one of the regular contributors on this forum, so it's certainly doable. It just depends on whether that is workable for your needs - if we make the images smaller, will that prove to be a problem for you?
Let me know, because I will have time to look at it (later-ish) this week if you'd like me to.