The non-behavior way is to compare the distance between each pair of objects and push them apart and update their velocities if they are two close. That doesn't scale well with such a large amount of objects, so we need to do some kind of spatial hash so we only need to check objects that are nearby. Unfortunately if doing it with events it's hard to get that much of an improvement so JavaScript is better.
Here's one possible test of that. It handles one object type and treats them all as the same size. Disable the group to compare performance with the physics behavior.
https://www.dropbox.com/scl/fi/ja4hfo7dv9sqq7phs1q25/spatialGridJS.c3p?rlkey=heo2ewlpffq6n6kwusnnefdk8&dl=1
With 1400 objects:
Custom push out: 60fps
Physics: 10fps
The example also does it's own physics, but you can just use the spatialGrid() function if you just want push out.
That's really cool! Great job, but can we make the sprites chase another object? I tried it, but it looked weird to me. I'd love it if you could tell me more about your project!