An issue regarding physics lag and humanoids

I am extremely aware of the multiple threads that people have already created related to this, but I want to take my own piece of information out of this and figure out how I could apply it to my game.

Currently, I am working on a game where hundreds of NPCS clash together and fight each other. I have already optimized a TON when it comes to the scripting aspects of the game, and have exhausted all of the possibilities out. However the main stressor on my game is PHYSICS.

Now, there isn’t much going on when it comes to physics in my game, I use the Move() function on humanoids every couple frames or so (per humanoid), but I don’t quite know how much that effects my case. The NPCs also never move vertically, so they just move on a 2d plane. They don’t try and path-find, jump, or any of that stuff. It’s very rudimentary.

Does anyone know if there’s some ingenious or at least somewhat good way to solve this issue?

Here’s a short example of how my units move from a top down viewpoint.