i have similar problem on my old celica sx 1988 twincam..
the idle is 2500 then goes down then on park or neutral its all ok but when you drive or reverse the idle is not steady.. well what i did is i replace the sparkplug cables and sparkplug it inproves it but still does it and i found that my head gasket is about to blow.. so you should get you car check to make sure its not a head gasket is not blown because it will cause you a lot. I sold the car and i dont know if it did blow. when your engine is running and there is white smoke coming out when you open the oil cap your head gasket is gonna go.
If your engine is not doing what ever i said above..
then it might be a gearbox or timing problem..
this issue will cost you a lot of gas.
get it check dude