I've used the method outlined by John Witherspoon in this post http://community.qlik.com/forums/t/37654.aspx to fill in a colour between two lines by creating a stacked area chart with the second expression showing the variance from the first expression (which has a white background).
However, only one colour will apply to the whole area per expression.
You could also try a Radar Chart which has an 'overlayed' sub type in the Style tab. If you make the first expression, the target, a red colour and the second overlay a transparent lighter colour it makes areas below target stand out a bit like your requirement.
Another alternative might be to show the varaiance as a bar chart and use an expression in the background colour to set values above 0 to green and below 0 to red,
Aside from the excellent suggestions above, another possibility is to create multiple expressions, one for each color, and then use set analysis or IF statements to plot the relevant segments in the relevant areas. This might get to be a hassle, but if you don't have too many colors, it shouldn't be too bad.