It is a combination of both. The light flickers and the camera exposes different scanlines at different times.
http://www.diyphotography.net/everything-you-wanted-to-know-about-rolling-shutter/
[Sorry just noticed your post where you said your noise is not equally spaced. ]
Well, this makes it more complicated. Still, horizontal bands would indicate noise signal in low audio frequencies range. It may be either optical (flicker, flash photography, lightings) or electrical but the latter is pretty much limited to badly designed analog power supply in the camera which is unlikely. There are also some pure digital effects that can produce banding (frame tearing due to badly done frame rate conversion and aliasing due to badly done resampling) but they are quite distinct in their appearance. Anyway, hard to tell without looking at the image.
A good method to remove the noise uses as much information about the noise and the image content as you can get. There is no universal method that works for every case. Can't get any more specific without seen the image. But just to give an example: In your case the bands are horizontal. You can project the image onto Y axis (average your image in X direction) then subtract the projection from your image. You will get an image which is going to look flat, but will have all the fine details preserved (actually this is exactly what the guy on stackexchange did by mistake, you will notice all scanlines in the "output image" have the same average value)\. But what is important - all the noise is now concentrated in Y projection and none of it in the rest of the image. But of course there is also useful information in it which you'd want to preserve. Still, it might be easier to identify and remove the noise from Y projection and then re-apply it to the image. For example, in stackexchange image, a plot of Y projection will show a clear sine wave superimposed on it. If you remove it and add the modified profile back, you should get a reasonably good result. Incidentally this is exactly equivalent to doing an FFT, setting small areas around 2 specific points in the spectrum to 0 and converting it back, as was suggested by someone on stackexchange.
And yes, you can use known reference features. The easiest way to do it is if you can get a series of images from the same viewpoint, then you can average them to create a noise-free reference background image. You can then subtract it from your new image and the difference will contain just the noise plus whatever action is happening in the foreground. Then you can extract the noise pattern from the known background portions and somehow expand it it to the rest of the image.
BTW intensity values of "completely black" features are not very reliable. Uniformly colored flat bright features are much better for these kind of things.