Hmm sounds like you're doing some dodgy shit. Anyways, none of my buisness.
I know how you can achieve 2/3 of everything you want.
You can download apps from the PlayStore programatically with this lib:
https://github.com/matlink/gplaycli
You can install apps with the Android debugging bridge (ADB).
The last step is pretty unrealistic. You can't just create an infinite amount of VMS. Do you even know what resources they take (disk space, RAM, etc...).
A workaround I'd suggest is trying to figure out how an android App distincts one android device from another and try to trick the emulator in changing those variables.
The only problem is that I doubt that what you have in mind is according to rules and maybe even more important, I don't know if you have the technical skills to execute on this. Anyways I hope this helps you.