Designing 0- 300 mA current source with 12v Voltage supply (load = constant 40ohm)
You say you want a 0-300 mA current source, but that the load is a constant 40 &Omega;.  There is therefore no distinction between a 0-300 mA current source and a 0-12 V voltage source.

The biggest problem you have is that your circuit can't drop any voltage at full output since you only have 12 V to start with.  That's not possible, so what you asked can't actually be done.  However, you can get reasonably close.  Of course a better answer would be to start with a power supply a little above 12 V so that the pass element is allowed to drop some voltage at full load.

To minimize the voltage drop across the pass element, use a MOSFET.  It's not hard to find devices that can go down to a few m&Omega; with full gate drive.  20 m&Omega;, for example, is 0.05% of your 40 &Omega; load.  That would be within measurement error for most purposes.

You didn't give any constraints on how this current source is supposed to be controlled, so we can pick something simple.  A pot setting the gate voltage of the MOSFET provides control over the current.

Here is a circuit that meets all your specs, except that it doesn't quite put out 12 V or 300 mA with exactly 12 V in:



This particular MOSFET can handle up to 20 V and goes down to less than 10 m&Omega; with 10 V on the gate.  Only you can say whether that is close enough.  Again, your specs are actually impossible to meet.

The control is achieved by rotating the pot (R1).