There's not currently a way to limit the number of particles which can target another particle. You could parse all targets using a Script operator and do the assignments manually. A "target" is just the birthID of a particle assigned to a custom float channel, so it wouldn't be hard to do that type of calculation.
Alternatively you could use a Custom Property operator to assign a value to a particle's target which denotes that that particle is "chosen". Then turn on clustering in the Set Target operator to prevent other particles from choosing a target that has been assigned to another particle. However, that will only prevent other particles choosing it during the next time step, it won't prevent more than one particle from choosing it during the same time step (because the Custom Properties operator would be evaluated after Set Target). To elaborate: enter the name of a channel (all default values are 0) in the clustering parameters of the Set Target operator and choose "if equal" as the condition. Then after the Set Target operator, add a Custom Properties operator that's set to take values from a particle and assign them to the custom data channel of the particle's target, and assign any value other than 0. At the next time step, all particles chosen as targets will have some non-zero value in that channel, so particles looking for a target will exclude them.
Alternatively you could use a Custom Property operator to assign a value to a particle's target which denotes that that particle is "chosen". Then turn on clustering in the Set Target operator to prevent other particles from choosing a target that has been assigned to another particle. However, that will only prevent other particles choosing it during the next time step, it won't prevent more than one particle from choosing it during the same time step (because the Custom Properties operator would be evaluated after Set Target). To elaborate: enter the name of a channel (all default values are 0) in the clustering parameters of the Set Target operator and choose "if equal" as the condition. Then after the Set Target operator, add a Custom Properties operator that's set to take values from a particle and assign them to the custom data channel of the particle's target, and assign any value other than 0. At the next time step, all particles chosen as targets will have some non-zero value in that channel, so particles looking for a target will exclude them.