Pick a random station to be x=0.
Graph this in 2d space (t, x). The train's position is a line with slope either +1 or -1, and an unknown x-intercept (that is, at time t, it's at x=x0+t or x=x0-t). So you pick possible starting positions (x0) and slopes (+ or -) and each hour you call the station where the train would be.
At t=0, guess x0=0 and call station 0.
At t=1, guess x0=1, slope +, call station 2. This also rules out x0=3, slope -.
At t=2, guess x0=1, slope -, call station -1. This also rules out x0=-3, slope +.
At t=3, guess x0=-1, slope +, call station 2. This also rules out x0=5, slope -.
At t=4, guess x0=-1, slope -, call station -5. This also rules out x0=-9, slope +.
At t=5, guess x0=2, slope +, call station 7. This also rules out x0=9, slope -.
At t=6, guess x0=2, slope -, call station -4. This also rules out x0=-10, slope +.
At t=7, guess x0=-2, slope +, call station 5. This also rules out x0=12, slope -.
At t=8, guess x0=-2, slope -, call station -10. This also rules out x0=-18, slope +.
At t=9, guess x0=3, slope +, call station 12. This also rules out x0=21, slope -.
At t=10, guess x0=3, slope -. Except that's already ruled out! As is x0=-3, slope +.
So skip to x0=-3, slope -, call station -13. This also rules out x0=-23, slope +.
Then resume the pattern.
At t=11, guess x0=4, slope +, call station 15. This rules out x0=26, slope -.
Even if you don't skip the ones that are already ruled out, you're guaranteed to check each position x0 in both directions at or before t = 4*|x0|. This will eventually find the train, though it could take arbitrarily long to do it.
(Of course once you find the train, your next call is to a station next to that one, and either the train's there or it's not. You now know its direction.)