Do you have access to a computer scanner? There is a passageway in the throttle body where air bypasses the throttle plates, which is controlled by the Idle air control. (IAC) A signal from the computer steps the IAC in or out to control the idle speed, but it has a limited amount of travel. The base idle speed is set just like a carburetor idle adjustment, but the adjusting screw is under a thin sheet metal plug that can be pried out with an awl, or something similar. This adjustment is called "minimum air rate", and is adjusted by blocking the air passage to the IAC, and setting base idle with the adjusting screw. The passage is odd-shaped, and requires a specially-shaped plug to block it off. You could try a piece of rag with a punch or screwdriver blade wedged behind it, but you'll probably get an air leak that will affect the adjustment.
If things don't improve after adjusting the min air rate, you've probably got a stuck IAC, or a bad signal from the computer. Try removing the IAC unit and cleaning it up with spray carb cleaner and compressed air, or replace it. a scanner is necessary to monitor the signal to the IAC stepper motor.
Just had another thought! Any vacuum leak, a hole in a hose, PCV valve stuck open, or other source of air beyond the throttle plates will cause a too-high idle speed, that the IAC can't control.
Jerry