It depends on how each of the portions of Photoshop you're using was implemented. There's little you can do to influence it. About the only thing I can think of is that you can adjust the Tile Size and Cache Levels values in the Edit - Preferences - Performance dialog. On some systems with some kinds of operations smaller tiles can make things work faster and with others large tiles are better. But be forewarned: I've never seen changing those values make a very big difference.
One other thing you can do is adjust the max RAM you allow Photoshop to use. Your OS probably itself doesn't need more than 1 to 2 GB, and if you don't specifically have another application you want to run that uses a lot of RAM you'll want to change the Photoshop RAM usage so as to leave just a few GB for the OS. On a system with a huge amount of RAM that might mean setting it to 90% or more. If Photoshop can keep things in RAM, your CPU will be busier because it won't be waiting on swapping data to/from disk.
Make sure you restart Photoshop before testing any changes.
There are filters that you SHOULD see use 100% of all your cores - example, try a Filter - Blur - Radial Blur on a large image. There are other things that simply don't, because either there isn't a good way to multi-thread the activity (e.g., data compression during save) or the Photoshop implementation is just limited because it's not been updated since the advent of multi-core systems (e.g., some of the old artistic filters).
When I was doing performance testing, I created an action that does a lot of the kinds of things I normally do to images, so that I could run it repeatedly and time the results, looking for differences as a result of choosing the different settings. There are Photoshop benchmarks on the web that do much the same thing, and while it might not be a good match for what you do (none of them were for me), they ARE interesting in that they allow you to compare your performance to other systems out there, to make sure everything's working right.
As Noel said, there is no way to enforce resource usage. Sometimes simple computational math gets in teh way and requires strictly linear processing in a single thread...
Noel, thank you very much for the detailed reply.
I'll try the Radial Blur filter and see how much CPU usage I get.