I think I can't use shift registers because I need to power each LED separately from the others.
That sentence makes no sense. Shift registers, and LED power, are two separate things.
Your best bet is to use a chain of constant current sink LED driver shift registers, such as the STP16CP05.
If you want to get more decentralized and rugged you could think about grouping the LEDs together into small chunks, each chunk with its own microcontroller, and use something like RS-485 to create a backbone communication link between them all with a master device sending out the commands to tell slaves to turn LEDs on and off. That would be a better solution in a noisy industrial environment. Libraries are seldom noisy though ;)