Loop iterations after particular time

I am using Arduino Mega.

I want to run a loop at every 120us. Right now I am using For loop with delayMicroseconds().
all the lines in the for loop are executed in 96to 104 secs. Then I use a delayMicroseconds() to compensate for the variable time.
but I am getting variable timing of 116 to 124 us.

Is there a way with which I can trigger every loop iteration after exactly 120us??

Look at the blink without delay example sketch, but use microseconds instead of milliseconds.

This is an extract from the Blink Without Delay example

if(currentMillis - previousMillis > interval) {
    // save the last time you blinked the LED 
    previousMillis = currentMillis;

It will keep time more accurately if the last line is changed to

previousMillis = previousMillis + interval

There is a long discussion about why this is true here.

...R