If there is very little water movement in the tank, that could be contributing to the rapid waste accumulation in your gravel...keeping in mind that some accumulation is unavoidable. That said, better water movement would keep more of the stuff stirred up in the water collumn where it can eventually be sucked into the filter. For a 20 gallon tank, a hang on filter should be sufficient, but you are right in suspecting that 3x tank volume per hour is not sufficient. 10x is a pretty common recommendation, though you could get away with a bit less than that, particularly if your tank is not fully stocked. There are a couple of things you can do overall to improve the filtration and water movement in your tank. One I would strongly recommend would be to get a bigger filter, perhaps one with a sponge for bio-filtration if you are having trouble with your current style. After that, to improve water movement in parts of the tank that are too far from the circulation created by the filter, try either putting in an air stone or a power head. On both my 20 gallon tank and my 55, I put an air disc (something like this:
http://www.drsfostersmith.com/Produc...&N=2004+113405) on the opposite end of the tank from the filter to help create some additional circulation. The movement that creates will be pretty gentle. If you want something stronger, look into the power head option.
Hope that helps!