Not quite... It's kind of a situation where CPU makers couldn't just keep increasing the CPU speed like they had in the past, because they were very quickly hitting the limits of what was possible with current manufacturing methods. However, they still needed some way to justify getting people to buy new products, so they came up with sandwiching multiple CPU cores onto a single chip.
That works all fine and well when you may have Program A running on one core and Program B running on another core, but if you want to have Program C using more than one core at a time, it requires a lot of work.
And yes, clock speeds are per core. The difference between a multi-core system and a multi-CPU system, is that with multi-core there's only one set of interrupts. Which is to say there's only one path in and out for all cores. So it doesn't matter if you have 2 or 50 cores on a CPU, all the data comes in and out in a single place. So if one core finishes working on what it's doing while another core is shipping data out, the first core has to wait for the second core to finish. Same deal as if one core is waiting for another core to finish bringing in fresh data to work on. It's a less ideal solution compared to multi-CPU setups, but it's also cheaper, so it's kind of a tradeoff. And in this case, all the coordination efforts are being handled by the CPU's internal logic, so you just have to hope Intel's engineers did a good job.
Finally, you have a quad core hyperthreaded CPU. Without going into large amounts of detail, hyperthreading just means that some of the instruction processing logic for each core is duplicated allowing you to run two processes on a single core. The OS sees it as another core, though it's not quite that simple. So if Process A is already running on a core, and then you start Process B, it can only use whatever functions of the core Process A isn't using. So it wouldn't be very useful to run two copies of Process A on the same core, because they both want to use the same functions.
The moral of the story here is, is that multi-core CPUs are kind of a solution in search of a problem. Most people seem to think that the processing power stacks, so if you have a quad core 3.4GHz chip, that's the same as a 13.6GHz single core CPU. It's not. Think of it like the old telephone operators who used to have to manually connect phone calls by plugging various wires into different holes. A single core CPU is like a single operator who can only make one connection at a time. Doesn't matter how fast she can make those connections, it's still only one at a time. On a multi-core CPU it's like having a room with 2-4 different operators, each making connections. So if you have a large number of people calling in to the switchboard, the call load will be handled much more smoothly with multiple operators as opposed to a single operator who just works faster. You have some redundancy built into the system so that if one operator needs to go on a lunch break, the whole system doesn't come screeching to a halt.