does the CPU have to wait the extra
time for memory
Yes, it does. As a matter of fact, the problem you describe is one of the biggest challenges CPU and system designers face when designing current hardware: RAM access is typically at least an order of magnitude slower than operations inside the CPU, so RAM access needs to be minimized.
This is the reason all modern CPUs have CPU caches, but even they can only mitigate the problem.
or is there some as
CPU fast controller that handles that
waiting time and CPU can do some more
In general this is not possible, as when the CPU is waiting for data from RAM, it usually cannot go on without the data. With techniques like hyperthreading the CPU can switch to executing a different software thread while it is waiting, but this requires support from the running software (it must use threads).
In some cases, the CPU can do something useful while waiting for memory, by using "tricks" like out-of-order execution and speculative execution, but this is not always possible. The answers from Andy and harrymc also explain this.
For an extensive discussion of these problems, there's an excellent paper:
What Every Programmer Should Know About Memory by Ulrich Drepper