aclarando un poco mas los terminos:
multihilo = multithreading = "HyperThreading" (nombre curioso de los Intel marketing guys)
significa aprovechar el mismo pipeline del procesador (nucleo) procesando instrucciones pertenecientes a distintos hilos (que pueden pertenecer a su vez al mismo proceso o a distintos procesos)
multicore -> varios "cores" (nucleos) independientes.
Cada nucleo de un multicore puede ser a su vez un multihilo
(ie power5 son dual core y SMT a la vez, teniendo "4 hilos" en total).
Por cierto, concurrencia no es lo mismo que paralelismo. Dos programas pueden ser concurrentes si el SO lo soporta, independientemente de que el procesador sea monohilo o mononucleo.
Dos programas se ejecutan en paralelo si se pueden ejecutar a la vez (en el mismo ciclo) instrucciones de ambos. Por tanto paralelismo -> concurrencia pero concurrencia no implica paralelismo.