You can reduce the current by simply reducing the duty cycle. For example, to display red, rather than sending 255 as the red component, send 42.
If you divide each of the R/G/B values by the same figure you get the same colour, just duller. In a quick test I found that a 24-pixel strip only used 67 mA if I sent red=0, green=0, blue=42 which made them look a dull blue. If you send a value of 8 (in a single channel) then it takes 25 mA for 24 pixels.
A bit more testing reveals a base consumption of 21 mA even if you are sending black. That is, the overhead is 21 mA, which works out at about 1.1 mA per neoPixel.
Based on that, you would consume 335 mA to make 120 NeoPixels show a moderately bright red.
I don't think there is going to be some "magic bullet" that lets you light up 120 LEDs brightly, but not use much power. However using the NeoPixels which lets you have fine control over the brightness of each of the R/G/B pixels is probably going to be about as close as you can get.
The figure of 50 mA which you quoted is to have "full brightness" on all three colours (ie. bright white).