At the time I am writing this, there are a couple of other well thought-out solutions already posted on the subject, however I would like to add a little something you may find easier to swallow:
1) The achievement "Collect 100 Souls" requires you to do just that. You can collect souls by activating the Jackanism Sword when you are playing as Jack. To activate the Jackanism sword, you need to have collected between 1 and 3 of the "heads" that come from chests or are seen lying around various levels. The more heads you have, the longer the Jackanism sword lasts (it will remain green when active). Once you have some heads, you need to press RT, LT and A at once. There will be a poof of green smoke (which kills enemies :( ) and then you have it activated. With the sword active, as you hit enemies with it, you will collect their soul. This is how you collect souls.
2) It is important to note that when activating the Jackanism sword you should be away from grenados, as they will explode and kill you. You should also be away from your enemies, as the 'blast radius' will kill them too, and you'd prefer to harvest their soul :)
3) The other solutions are great, however I found that it was difficult to get both NPC's on Isla Cruces in the cave at the same time, and I found that it was painful to wait for the soldiers to come out on the end of Port Royal getting only 1 or 2 per Jackanism.
4) To make it more "Interesting", I played through the levels again where you play as Jack and in each level there is usually a scene where jack has to kill a number of enemies and a mini-boss. I used a 3-head jackanism in these levels to collect roughly 10-15 souls per level which adds up after 5 or 6 levels and it's not as monotonous as trying to get all 100 from one level. I did all levels besides Port Royal and Isla Cruces and managed to pick up about 55 souls.
5) After that, I played Port Royal and picked up souls in two key areas: The first is in the tavern area before you tamper with the hangman's noose. I picked up 10 or so here. Then at the end of the level I picked up another 20 or so to bring my total up to 84/100 souls. (* Note that in this area I DID have to build up by "finishing move" power by defeating enemies using the A X A combination, then when it was filled to the bright red level I dueled and used LT to finish them off (making sure to finish them with the circled button) to have them drop a head every so often. Time consuming and boring.)
6) With 16 to go, I will captured 1 NPC in the cave at the end of Isla Cruces when you play as Jack, and picked up the other 16. With a 3-head Jackanism to start the fighting, I picked up between 8 and 10 at the start and then grinded on for the others.
Again, my solution is no different than the others listed here, except I recommend that you replay other levels to pick up some souls which breaks up the monotony and in truth may be as fast as grinding them out. (i.e playing a level only for souls takes only 10-15minutes and nets you 10+ souls) That was better than my rate on Port Royal.
IF YOU PLAN TO GIVE A NEGATIVE ON THIS SOLUTION, PLEASE CONTACT ME OR COMMENT FIRST SO I CAN FIX WHAT IT IS YOU SEE WRONG. THANK YOU!