Most delay methods in a microcontroller only guarantee that the delay will be at LEAST what you want it to be, not precisely what you want it to be.
The simplest way is to poll a timer in the main loop amongst all the other things that are running to check if the timer has exceeded a particular count.
Another way is to set a timer interrupt to trigger whenever a timer reaches a certain count. The interrupt could set a flag that some other part of the main loop checks to see if the minimum delay has been met. The simplest, precise way to do it is to get the interrupt to directly execute whatever it was you want delayed, but this is a really bad idea if what you want executed is big, long, and complicated since you spend too much time in the interrupt service routine.
But even with the interrupt directly executing your delayed task, there is variance and latency. Precise delays (or precise timing in execution) are not an MCU's strength because the MCU is doing other things. You rarely know what the MCU might be doing when an interrupt triggers so you rarely know how much time it takes for the MCU to put everything else aside and get around to the interrupt.
Getting a PRECISE delay time is probably not feasible since it would take a lot of careful coding and verification of the entire program, and as soon as any part of the program changes, that precise delay may no longer exist. Timing precision of execution is not an MCU's strength and a lot of work goes into just getting an MCU to execute everything it needs to before it's deadline (like real-time systems or an RTOS), let alone getting something to execute exactly when you want it to.
You should find a better way to do whatever it is you are trying to do, but you have not told us what you are trying to do. One of the main reasons an MCU has hardware peripherals is because an MCU is bad at precise timing. A lot of peripherals (like timers) are intended to take care of that so that the MCU doesn't have to. But if you truly need something complex to happen with precise timing, an MCU won't do the job without special hardware.