There are several overlapping issues here. ArcGIS Desktop is single-threaded, but can make use of a multi-core machine because it can then get the exclusive use of one core. Unless there's a Direct Connect connection to an enterprise geodatabase, in which case, each connection will be run as an additional thread.
ArcGIS Server supports multiple cores innately due the "server and service" architecture (it also supports multi-threaded access to Direct Connect geodatabases).
The number of threads dedicated to any one service is controlled by the service properties (maximum and minimum number of instances):
I'll generally increase the maximum number of instances before building a cache, especially when it appears that it will take several days to build out all fourteen pyramid levels.
The "Create tiles on demand" option will actually reduce core the utilization, since it tells AGS to wait until maps are requested before populating the cache.
In order to be in compliance with licensing, you should have licensed additional bundles for your 24-core server.
Finally, it's possible that you are limited due to concurrent access to a slow I/O resource. This is probably something to discuss with Tech Support.