My understanding of clocks and latencies, which I came to when oc-ing my memory, is that timings are just as important as the clock.
Let's assume your memory is running at 800MHz, with timings of 5-5-5-15. So, it takes 30 clocks to act on a command, locate the requested data, and transfer the requested data. In this case, it takes 37.5 nanoseconds per command. It's this time that we want as low as possible, really.
As clock speed goes up, and timings stay constant, the memory must undertake each command in less and less time. Eventually, it simply can't do it in the allocated time, and instability occurs. So, timings are loosened, giving the memory more time to undertake commands. Or voltage is increased, giving the memory 'more energy' (an energy drink, in a way).
Dual channel probably cuts times in half, but there's still a very strong relationship between timings and clocks. A also know there are a lot more timings.