How can I dynamically download and apply textures at runtime?

I need to download texture files via HTTP at runtime and apply them to meshes in game. I can’t package the textures with my game at compile time for various reasons (there are thousands of them, some of them are dynamically generated on remote servers, and some of them are uploaded by players).

Where do I go to start figuring out how to do this? Long-term, I’ll be deploying to Android and iOS, but if I can just figure out how to make this work on PC that’s a good start. Is Asynchronous Loading as described here part of the answer?

Possible duplicates and/or resources for research: