The most common trick I know of to do this is by having a box around the top/front of the camera. Spawn falling particles in world space in the box. If a particle leaves the box due to camera movement, or falls below the bottom of the box, teleport it to the opposite side of the box.
If you’re in 2018.4, this would be achieved by using Get/SetParticles in a script. But it might be slower than you’re hoping for, performance-wise.
If you’re in 2019.3, you can write a Burst C# job to do it. Which would be very efficient. (See Particle System C# Job System support and Unity - Manual: Particle System C# Job System integration)