Threads are individual pieces of code that a CPU runs. Each core can only run a single thread at a time. However, if a thread requires some information from memory to be retrieved, a core with two "virtual cores" can start working on a second thread while the first thread waits for its required information. The performance gain is noticeable, but far from having real cores.
i3 vs i5 vs i7 is not so clear cut, and can be quite confusing. For example, a low voltage or ultra low voltage i7 will be easily beaten by a normal voltage i3.
The "i" processor series are significantly more advanced than the core 2 duo series, and get a lot more work done per clock cycle. Therefore in almost all cases, a 2.4GHz i5 will be faster than a 2.66GHz C2D.