I can't imagine how you're going to rank track a million keywords (or even how you'd have time to look at that much data to make meaningful insights).
Let's assume that it makes sense to do so, however. I think you need Rank Tracker by Link Assistant. It technically allows "unlimited" keywords for tracking.
The issue is blocking. You're going to also need a proxy package setup in it. (maybe Squid, BuyProxies, YPP, Proxy-Hub, Errsy, etc.)
Once you have a big enough proxy package, run til your heart's content. It keeps historic data, etc.
I would suggest creating multiple campaigns for your locations so you can run each one at once, etc. and see how that one group did. If you create a campaign for each, it'll be much easier to see those buckets and make some decisions & figure out where to apply your efforts.