The original 8051 uses 12 clocks for 1 machine cycle.
So,with a 12MHZ crystal, 1 machine cycle = 1us.
The DJNZ and MOV instructions would each require 2 cycles or 2us to execute.
A convenient value to load in the inner loop could be #0FAH.
If you need to be extremely accurate then you must include the time required to execute the MOV instructions in the calculation. To get fine control of delays you can add NOP instructions which require only 1 cycle.