Assuming a 16MHz AVR (such as Uno, Nano, Pro Mini, etc):
You can use a timer's output compare to do this, but the big problem is... .25 microseconds is 4 clock cycles.
If you need to send a .25us HIGH and a .75us LOW, that you can do with a hardware timer's output compare, if you take over the timer.
If you need to do it repeatedly, you can do that.
If you need to do any sort of processing within that timeframe, that's not going to happen - 1 microsecond is 16 clock cycles - 16 instructions at best.
You could also achieve the same thing by disabling interrupts and using a bit of inline assembler - harder to write than the hardware timer method, and blocking, but you don't care if it's blocking in a case like this, and if you need more flexibility than you could get with the timer, this is the only way.
Edit: looked at the section of the manual you posted; pretty sure you need inline assembler for this.
The problem with very short delays with delay microseconds is that the time it takes to figure out how to generate the delay you want is not negligible compared to the length of the delay; even the overhead associated with a function call is non-negligible at that point. If you look at the source, it's full of comments about compensating for the time taken to do the math and comparisons it just did.
As an aside, digitalWrite() is WAY too slow for this, because of the overhead of converting the arduino pin number to the port and pin registers - direct port manipulation is a must.
Doing it with other, faster processors is somewhat easier, but still non-trivial (the delayMicroseconds() caveat is also based on 16MHz AVR; it's likely better with very short delays on faster boards, ex due, zero, and similar)