Making a Class Asynchronous(ish)

Hello!
I have a class that has an update function. I would like that function to run every 125 CPU cycles (500ns).
This class in particular is an LCD driver I'm writing. I write screen data into an array and write it to the screen later.
The code I need to run every 100ns is:

//screenDat is of type  uint16_t[128*128];
//readLoc is of type    byte*;
//GPIO_REG is of type   uint32_t*;

void LCD::tick(){//Call as frequently as possible. Updates the screen data. NO MORE OFTEN THAN ONCE EVERY 25 CYCLES(100 ns) -  Will cause glitched outputs and undefined behavior.
	*GPIO_REG&=(~0b111111111111);     //Unset all 8080 pins, CMD mode
	__asm__("nop\n\tnop");     //Delay a little. May be unnecissary
	*GPIO_REG|=  0b011000000000|(*readLoc);     //Enable write and chip, write data, DATA mode
	readLoc++;     //Increment address, not value!
	if(readLoc==reinterpret_cast<byte*>(&screenDat+128*128*2))
	  readLoc=reinterpret_cast<byte*>(&screenDat);     //Reset readLoc to beginning if it reaches the end
}

I know some libraries (like AsynchronousWebServer) can do this. How can I do it to?
At the moment I am just calling it manually whenever there's a gap in processing.
Thanks!

EDIT: Forgot to mention - I am using an MCU with enough RAM (512k) and processor speed (240MHz) to make this work.
100ns happens to be the max speed for the display, but it would probably be better if it was slower (much much slower. 100ns -> 300fps... Maybe once every 500ns? (125 cycles)).

EDIT: Forgot to mention - I am using an MCU with enough RAM (512k) and processor speed (240MHz) to make this work.

Which Arduino is that then?

Look at the mcu's datasheet.

Mark

It's the ESP-WROOM-32.

holmes4:
Look at the mcu's datasheet.

What am I looking for?

timers

Mark