This one can be time-consuming and boring.
First off to collect souls you must collect at least 1-3 shrunken heads, then as Jack activate Jackanism. Your sword will glow green, now when you attack an enemy while your sword is green it will instant kill them and add 1 to your soul count.
Note: The more shrunken heads you have when you use Jackanism the longer it will last, you can hold up to 3 at a time.
The tricky thing is you cant replay one level for all the souls(unless you get them all that first time). This is due to that only your HIGHEST AMOUNT ON THAT LEVEL will count. Example lets say you get 5 on one level, you replay that same level and get 6, your total will now only be 6 NOT 11.
You can find shrunken heads occasionally in chests, but easiest way is to build up your finishing move and use that on an enemy, there is a low chance they will drop a shrunken head.
There are a few good areas to get lots of souls (mainly ones where enemies infinitely respawn). One is on the Isla Cruces level, when you get back to the shore at the end of the level, you will be in a huge battle. Simply collect 1-3 heads, run away from the group (due to that the explosion has a radius kill and those don't count towards your souls) and activate your Jackanism, run back and kill as many normal enemies you can (make sure you keep the "boss" enemy alive as this will keep the enemies respawning). Unfortunately on this level you will have 2 npc's with you and they cant die or its game over, so when they get low on health make sure and switch to them and heal them. Rinse and repeat until you get all 100 or at least a large amount to simplify other levels.
Another area is Port Royal, get to the final area (with the gallows), enemies here will respawn infinitely, do the same thing as outlined above. You can do everything in this final part except fire the cannon which will end the level. If you get up to that point the enemies will only come two at a time, reducing the risk of your npc, Will, dieing.
Try to get your 100 between these 2 levels as they are the easiest to do so. If you get close you can also net an easy 9-11 souls on the Prison Fortress level.