I have a Dodge Ram 1500, I have changed the heater core, radiator, the water pump, and the thermostat. When I push on the gas it blows out hot air but when its at idle it blows out cold air.
The immediate thing that changes when you increase the engine speed ("push on the gas") is the amount and pressure of the coolant moving through the system. When the coolant flow is low, the heater fan is able to extract all or most of the heat and it "blows cold," then as the flow increase with the engine speed the coolant doesn't have as much time to cool down as it passes through the heater core so you start getting hot air.
So the problem is to figure out why the flow of coolant through the heater core is low at idle.
Since you've done a lot of work on the cooling system, I'd focus on what you haven't changed and also on double checking the work you've done. Some things to check:
The most obvious thing that you haven't changed is the hoses – but I can't think of a way that they would be causing this problem. Still, it would be worth watching the hoses as you increase the engine speed. Perhaps one of them is collapsing (probably on the suction side of the water pump).
That when you reattached the hoses that you have them going to the right places.
There is nothing restricting flow through the heater core, check for kinked hoses.
Double check that you've gotten all of the air out of the cooling system.
If there is a heater valve check that it can open all of the way.
Since you've changed the pump, it is likely that it is good, but it wouldn't hurt to double check the installation.
This is only a guess but another thing that could diminish at lower engine speeds is vacuum, particularly of there's a leak, which could affect the opening and closing of damper doors. Consider checking for vacuum leaks, particularly at the vacuum reservoir and check valve if there is one.