is it a good idea to add 10V zener diode between source and gate to protect MOSFET?
It wouldn't hurt. You'll want to make sure that the maximum current through the Zener isn't enough to burn out the op-amp if this protection circuit ever operates (for example if RL is broken giving an open-circuit output).
You could also just add a resistor between gate and source, so that the divider between the existing 100 ohm resistor (whose value you'll want to increase and your new resistor never allows Vgs < -20 V. You'll slightly degrade the accuracy of the output current since the current through the resistor divider will be counted by the sense circuit but not go through your load. You might also need to recheck the circuit's phase margin with this arrangement.
I'm assuming current sourcing can be done by "inverting" this circuit. Is it so ?
You could invert the current sink circuit, but it would make the control signal more complicated. To get 100 mA output, for example, you'd need to provide an input 100 mV below V+, instead of 100 mV above ground. If you're sourcing the input signal from a ground-referenced DAC, for example, you'd need to jump through some hoops to get an accurate output current.