There is a hard limit of 2^10 (1,048,576). It’s easy to change if you have code. In ParticleGpuSimulation.cpp:
/** The texture size allocated for GPU simulation. */
const int32 GParticleSimulationTextureSizeX = 1024;
const int32 GParticleSimulationTextureSizeY = 1024;
You can increase the size of the textures allocated for simulation. Making both dimensions 2048 would give you ~4 million particles.
There is a separate limit of how many GPU particles are allowed to spawn per frame. That’s useful to prevent cases that would cause a hitch (e.g. generating 1M particles per frame would be prohibitive on the CPU). That can be modified at runtime or in the INI via the FX.MaxGPUParticlesSpawnedPerFrame console variable. It defaults to 2^10, the maximum number of particles currently allowed.