measure time <1ms

It sounds like you are trying to use two photogates to measure the speed of an object -- or something similar. In this case TMR0 could allow you to measure up to about 1 ms between the events with a 4uS resolution as it is configured in the arduino environment. Custom timer configurations could allow uS resolution with indefinite time intervals.

However, given your stated speed of 1.5 m/s and a 0.5m spacing you need to time an interval of approximately 333 ms, something like below should do for this situation. This setup should even work down to at least a 100mm spacing at 1.5m/s (abt 67ms)

loop()
{
   while (digitalRead(input1)  == HIGH) { }
   time1 = millis();
   while (digitalRead(input2) == HIGH) { }
   time2 = millis();
   speed = 0.5 / ((time2-time1)/1000)  // this should calculate speed in m/s given a separation distance of 0.5m
}