Even if Xcode can handle 400 projects in one workspace, do you really want to make and manage 400 projects? Even if you automate their creation, once created, each project is separate - if you make a change you would like to have in each project, you have to make that change 400 times. You could edit each project using a script, but that approach is horribly fragile.
I would prefer a single project which makes a generic target, with additional Run Script build phases to the target which make the target's output customer-specific, perhaps based on an environment variable. You can set environment variables from the Run Scheme, so you don't have to drop into the command line to build for a new customer from Xcode. This should make adding a new customer reasonably painless, and avoid duplication.