the problem was his IACV (Idle Air Control Valve)
same thing happened to me, it would climb up to a certain rpm and then drop and then go back up and drop, repeating. this is because theres something wrong with your IACV. Its located on the back of your IM (Intake Manifold). what i did was disconnected it, sprayed it thuroughly with carb cleaner, sprayed pressurized air into it (to full get any moisture out of it) and re-installed it. the problem seemed to nearly dissapear. i still get it a little bit, but i believe its cause i am running low on coolant. when i took off the IACV, i had some coolant leak out, since theres coolant lines leading to the IACV. Basically, the IACV tells your engine when its warm enough to not idle high. it has coolant lines that pass through it, and when it gets to a certain temperature, a hole in the IM the leads to the IACV closes, letting the rpms fall. I dont know if any of that made sense, but it does to me, PM me if you have any questions
Eviloliv3