MSD Digital 7s can do individual cylinder timing adjustments, based on a reference from cylinder #1. You have to put one of their spark pulse sensors, which is essentially the same as the clip from a timing light, over the #1 spark plug wire. The sensor is actually a donut shape, so it doesn't clip on to the plug wire, you have to pull one boot off the #1 plug wire and thread the wire through the sensor. Then there is a cable, fiberoptic I think, which goes from the sensor to a port in the MSD Digital 7. You have to tell the MSD what your firing order is, and then the software in the MSD will allow you to retard timing in any of the cylinders. I used this setup on my Mach 1 when I was running the supercharged engine, which was carbureted.
I think there are a lot of factors at work when it comes to causing variations in the individual cylinder fuel or timing requirements. Variations in the intake manifold and headers comes to mind, as well as fuel distribution. By the way, fuel distribution issues are not automatically cured by 8 EFI injectors, because there can be significant variation in the injectors themselves. Also temperature differences from cylinder to cylinder caused by variations in the cooling system could come into play, small variations in pistons or combustion chambers from cylinder to cylinder, etc. etc.; the list goes on and on. My efi-guru friend Dieselgeek has seen remarkably large variations from cylinder to cylinder in fuel requirements even with individual runner sheet metal intakes and EFI setups. So the more tunability you can put into individual cylinders, the more likely you will be able to squeeze out more horsepower.