If you are looking for very short ns-based delays you are out of luck. The compiler-generated delay routines simply count off machine cycles. In a 20MHz PIC for example, each machine cycle is 200nsec. The minimum delay you could get on that part would be 200ns. An example you could see on an IO port would be:
Rich (BB code):
bsf port,bit
bcf port,bit
which would have 200 ns between the port actions. That's the best you can do.
Likewise, a single NOP is the smallest delay available, it would also have a 200ns minimum time at 20MHz.