[quote user="Brian Boorman"] Program a timer to generate an interrupt every 1 microsecond (configuration depends on your specific system and clock rate).[/quote]
It will be a lot safer to generate interrupt at a lower rate.
From Arduino
micros()
Description
Returns the number of microseconds since the Arduino board began running the current program. This number will overflow (go back to zero), after approximately 70 minutes. On 16 MHz Arduino boards (e.g. Duemilanove and Nano), this function has a resolution of four microseconds (i.e. the value returned is always a multiple of four). On 8 MHz Arduino boards (e.g. the LilyPad), this function has a resolution of eight microseconds.