Hardware multithreading allows multiple threads to execute concurrently on a single processor core. It leads to better CPU utilization by enabling multitasking. There are different types of hardware multithreading, including fine-grained which switches threads every cycle, coarse-grained which switches on events like cache misses, and simultaneous which executes instructions from multiple threads in the same cycle. Hardware multithreading provides benefits like reduced latency and better hardware usage but comes with costs such as additional hardware complexity and potential reduction in single-thread performance.