There are a number of solutions to the problem, each of which has issues.
You can add a decoder to each car, as suggested. If you always run the same consist of cars, you could run wires between the cars and control them all at once. (This could have the advantage of ganging together all the wheel pickups, so you would pretty much eliminate flicker.) But, then you will have one very long car from the standpoint of an auto-reverser, which could be a different problem. Yes, you could put a decoder in every car, but that is going to be a lot of work and expense.
You can put a small toggle or slide switch on each car. I’ve done this to a couple of cars, putting the switches on the bottom where they can’t be seen. Unfortunately, it also means I have to remove the car from the track to throw the switch, and then replace it.
You can add a magnetic latching reed switch to each car. These switches can be thrown either way with the aid if a “magic wand” which you simply wave over the car. (You may say “Abracadabra” if you wish, but it’s not required.) The switches, though, are not cheap, and you’ll still have to open up the cars to install them.
Rapido makes what they call their “Easy Peasy” lighting system. This is a complete system for one car, including LEDs, reed switch and a battery. They do not rely on track power at all. I don’t have any personal information on battery life, but you might have to change them once every year or two if you run the cars with lights a lot. Not cheap, but on the order of the price of a decoder. I think the big advantage is that you’re not drawing down power, no many how many of these you have running.
You can replace your incandescent lights with LEDs. This will greatly reduce the current demanded by you car lighting. Cheap LEDs, though, don’t have the color you want, and LEDs are very directional so you