how to give delay of 1 nano seconds

J-M-L:
The unit of time of your microprocessor is based on its frequency... At 16MHz you don't get nano second granularity - so you need a faster processor.

Or just an additional bit of hardware that only does the timing. 1 nHz timing resolution requires a 1GHz clock, and I can't imaging that being easy to find in hobby-level micro-controllers. A 1GHz CPU would be stupidly huge overkill for a rangefinder too when you just need it for timing.

Range-finding of course isn't just a matter of sending out the pulse and waiting for the echo. Like most signal-processing tasks, it can be messy.This post on precisionrifleblog looks like it has a decent discussion of the problems that a rangefinder must take into account. One thing it misses I think is distinguishing your laser from the normal fluctuations of background light. IR remote controls do this by modulating their signal with 38 kHz so it can be band-pass filtered.