Will this temperature compensation work?
It won't provide much compensation because of the 100K resistor, and the diode won't track the self-heating of the transistor very well, even if it did. There's no reference so your current is going to be dependent on the 2V signal (perhaps that's intended). You could short out the 1K and remove the 100K and diode with little change. If the transistor heats by 25°C the current will increase about 4% (reference voltage is about 1.4V and it changes by about +2.1mV/°C as Vbe drops). A 10% drop in the input voltage will decrease the current by 15%. 

The circuit you are thinking of is approaching a current mirror, but that's got some real disadvantages in this application- you will have trouble feeding it a constant current and the transistors need to be at the same temperature for it to compensate (self-heating will be significant). If you want to continue with it, check out the AD link above. 



If your discharge current is to be constant (not controlled by the input voltage), I would suggest a circuit with more gain such as a TL431-based circuit. Replace Vi(BATT) with your control signal. The below circuit will work down to about 2.6V. If that's not low enough there are parts (TLV431) with a lower Vref.