Yup, Nick Wesselman
is right, the first step is probably getting yourself an accelerator to use as a base. In addition to SCORE and SXA, I can recommend Keystone for Sitecore as well.
Sitecore Powershell Extensions will likely be your friend so that you can write scripts to provision new sites or perform mass operations across the entire system.
One of the Multisite Manager implementations is probably a must so that you can manage your site definitions in the CMS instead of needing to deploy new files everytime you have a new site definition.
You'll want to make sure your site provisioning is automated (creation of any site-specific templates, site definitions, content tree, media library folders) so that you can avoid the manual hassle of trying to remember all the things you need for each site.
Make sure that your underlying infrastructure is able to scale. You'll want to be able to support CD traffic for the first few sites and then grow as you get more and more traffic. If you can afford up-front provisioning for the traffic of all 400 sites, then go ahead, but it sounds like it will take a few years before all the sites are launched, so if you can use something like app services or Azure IaaS and allow for horizontal or vertical growth, that's probably a good idea.
Make sure your deployments can be automated and with this many sites you'll want to look into regression testing automation. You will want to make sure that your next deployment won't break the sites you built 40 sites ago.
If this is the first time you've tried to scale like this, consider pulling in a senior architect who has experience with this (possibly from within your organization or from another Sitecore partner) to help you plan out the solution, infrastructure, deployment model, and testing.