I would highly recommend that you go for the core duo.. I have used it and performance seems good and even benchmarks seem to prove this...
Though app which take advantage of this is required to exploit the full potential even single threaded apps will run faster on a core duo as it can execute instructions which do not have inter dependencies/hazards between them to be executed simaltaneously...
consider the following assembly code for a app (even a single threaded app)..
Code:
SINGLE CORE
1 ADD r1,r2,r3
2 SUB r7,r4,r5
3 ADD r2,r3,r8
4 ADD r4,r7,r5
the above code can be executed in parallel on multiple core as follows without changing the end result
Code:
CORE1 CORE2
1 ADD r1,r2,r3 1 SUB r7,r4,r5
2 ADD r2,r3,r8 2 ADD r4,r7,r5
this will result in the same code being executed in half the time in a best case scenario...
hyper threading was a completely different ball game.. it just used a single processing core but emulated multiple sets of the same registers so as to avoid context switching overheads but had performance issues in some situations.. and it relied heavily on application/operating systems to take advantage of this feature where as the core duo is transparent to the software and in most cases does not require any changes to take advantage of its feature