A thread is a single line of commands that are getting processed, each application has at least one thread, most have multiples. A core is the physical hardware that works on the thread. In general a processor can only work on one thread per core, CPUs with hyper threading can work on up to two threads per core.
For processors with hyper threading, there are extra registers and execution units in the core so it can store the state of two threads and work on them both, normally to change threads you have to empty the registers into the cache, write that back to the main memory, then load up the cache with the new values and load up the registers, context switches hurt performance significantly.
The core is the hardware the thread is the software, the thread count for a CPU is how many threads it can handle at once.
Oh yeah i think that every I5 quad core has 4 threads, but its not about the amount, its about how it utilizes what its got.