While you could theoretically do this as 10k different sites within dotCMS (the only real limits are the hardware), it would probably be much easier and simpler to maintain by having a single site within dotCMS, and using some form of redirect to map each external domain to one page (or even one content item using a URL Map) within dotCMS.
Note that while you can have aliases for dotCMS sites (so more than one domain can serve the same dotCMS site), aliases wouldn't work for this case, because you can't have that many aliases on a site. And you wouldn't really need to use aliases anyway, since if you have only one site, that's the site that will get served by default (if a request gets to the IP address of the machine dotCMS is running on, dotCMS will serve the default site even if the request is for a domain that isn't recognized).
Instead, you'd probably want to have a single home page, and have code on the home page that checks the header to see which domain was being accessed, and then redirect to the page for that domain (again, probably using a URL map, so each micro-site is really a single piece of content, not a whole separate page). You could even do this without a redirect, by using the domain in the header as a key to a content pull.
This is all off the top of my head, so no guarantees this would work. But it's the first approach I'd try if this was a problem I needed to solve.