Use the Mesh shape option in the Particle System, and populate a mesh with the geometry you want to emit from. You can even use the sequencing options in the Shape Module to emit particles along the edges of the mesh in order. It supports meshes that use the Lines Topology, so you can make a mesh of lines to represent the curve.
Do it all in script, and simply call ParticleSystem.Emit with an EmitParams struct containing the position you want to emit from.