I'd personally check to make sure you don't have v-sync or any other frame limiter turned on, and that your monitor is operating at 144hz. The most logical problem is that you have it set to 120hz (using HDMI) and v-sync is on.
Well playing at the lowest settings puts more strain on the CPU. Have you checked if the CPU is maxed out during gameplay? If it is then its bottlenecking and you wont be able to push faster unless you either increase the settings or upgrade the CPU.
The CPU probably won't be maxed even if it is the bottleneck. Just one core would be near max.
Source can use more than one core. It can easily push a dual core.
Just because an engine uses multiple cores, doesn't mean they use them all equally. It only takes 1 thread to be slowed down on a single core in order to slow everything down. A single thread doesn't get used on multiple cores, just 1. Although some advanced thread loading techniques do exist these days, they rarely get used and didn't get used back when CSGO was created.
Anyway, it seems like something else is the bottleneck if he's getting 20-30% usage per core.
I'd personally check to make sure you don't have v-sync or any other frame limiter turned on, and that your monitor is operating at 144hz. The most logical problem is that you have it set to 120hz (using HDMI) and v-sync is on.