I know that software threads get a certain bit of time to execute and each software thread takes turns executing for that block of time but they are not executing at the same time (on a single hardware thread).
My question is, when you have 2 or more hardware threads per core, does each hardware thread run concurrently on that core or do hardware threads get blocks of time to execure like software threads, playing the round robin game?
Hardware thread = logical core
You only have 1 (hardware) Thread per (logical) Core.
Intel muddies the water by running two logical Threads on 1 Physical core, so only for some processors your question is applicable. And Hyper-threading is complicated but mostly concurrent.
For as far we as programmers are concerned, there exist only logical cores running 1 thread at a time.