Man kann das Spiel mit einem Script beschleunigen (müsstest du unter Gameplay finden), jedoch werden Lags dadurch nicht verhindert, da einfach da dies etwas ganz anderes ist.^^
Das Batallione weniger laggen liegt vor allem daran, dass ständig überpfüt wird, ob die Einheit angegriffen wird, eine gegnerische Einheit in Reichweite ist oder ob die Einheit sonst irgendwie aktiv im Spielgeschehen machen muss.
Und bei einem Batallion muss das nur einmal gemacht werden - bei einzelnen Einheiten eben pro Einheit.
(Zusätzlich kommen halt noch die normalen Zufallsanimationen, die immer abgespielt werden... aber die sind immer gleich aufwendig und verbrauchen verhältnismäßig keine Leistung)
Das ist auch der Grund, warum man bei Kampagnenmaps Einheiten, die zwar schon auf der Karte sind, jedoch noch nicht benötigt werden, meist auf "Sleep" setzt - so verbrauchen sie keinerlei Ressourcen, sind jedoch schon vorhanden. (das heißt man sieht sie, falls man mit der Kamera darüber geht)
Wenn man sie dann im Spiel benötigt (zum Beispiel weil Leute sich ihnen nähern oder was auch immer) werden sie einfach auf "Normal" gesetzt und agieren als sei nichts geschehen - verbrauchen aber auch wieder normale Rechenleistung.
Das ist die Erklärung, warum Einheiten in Batallionen weniger laggen.^^
Was bei deinem Problem auch helfen kann ist, dass du sie nicht in Wellen schickst (also alle 2 Minuten 100 Grabunholde), sondern etwas besser aufteilst, also, z.B. alle halbe Minute 25 Grabunholde.
Der Vorteil ist, dass du im besten Fall immer eine ungefähr gleichbleibende Menge an angreifenden Grabunholden hast, da der Spieler sie ständig tötet - während du bei der anderen Variante sehr große Schwankungen hast und somit manchmal massig Grabunholde existieren und manchmal kaum welche.
Die andere Möglichkeit wäre eben die, die MCM angesprochen hat - Grabunholde stärken.^^