You shouldn't provide so many details. Do you mean the engine is running and it overheats in 20 minutes or you hear something making noise 20 minutes after turning the engine off? If the engine is running, why are you letting it idle that long, even though it shouldn't matter, but keep in mind there's no natural air flow through the radiator when the car is standing still. A loose belt will prevent the water pump from moving the coolant fast enough and will slow the fan down, also reducing air flow. Check if the plastic shroud behind the radiator is missing, and be sure the rubber seal between the front edge of the hood and the core support is in place. Those items force air to flow through the radiator and prevent it from bypassing it. Check if the radiator cooling fins are corroded. If they crumble into a powder when you touch them, they aren't transferring heat to the passing air.
If it isn't overheating at highway speed, it is an air flow problem, (or lack of air flow problem), not an engine or thermostat problem.