how to drive hundreds of LEDs
There is a concept called "multiplexing" to control large numbers of LED's with few power pins.



In the above image, you can see that for lighting 16 LED's, only 8 pins are used for control. In the picture, you consider a matrix to glow a specific LED, say, for example you wanna glow A1 LED, then you need to give +Ve voltage to terminal A and ground to terminal 1. This way you can control LED a specific LED. 

There is a limitation here. If you wanna glow two LEDs, say for example A1 and C4, then the LED C1 and A4 will also glow. So to avoid such things, we use concept called "Multiplexing". Assume that you have a microcontroller with 8 I/O pins. Now, to glow A1 you give supply to A terminal and ground 1 terminal. Now turn off supply to A terminal and move to terminal, nothing will glow, then move to terminal C, now ground terminal 4. LED C4 will glow. Now move to terminal D. Nothing will glow. When you give supplies to terminal A, B, C, D so fast, you cannot notice that the LED A4 and C1 will glow. 

This may seem to be explaining in 2D, but you can make it in linear way and control based on it. All you need is a microcontroller with more I/O pins and programming knowledge. If you want to control about 50 rows of LEDs, you can use many serial to parallel shift registers like 74HC595 cascaded and also in the same way in the columns also. This way, you can save large number of I/O pins, but it needs to be operated very fast in the range of microseconds. 

The same concepts is used in television to display a picture. Some LCD TV's use TFT (thin film transistors) to switch on and off a specific row. In CRT TV's, the deflection coils in horizontal will manage to show a single line.