Thats the simple 2 transistor current limiter using PNP transistors instead of the normal NPN ones. The top resistors set the current. You could also replace all that (expensive) stuff with one of those little 3/8" or so square blue 10 turn trimmer pots. They're cheap and rated at 1/2 watt and you'll never get there because there's only 0.7v across it so even at 20ma, thats only 14mw (0.014 watts).
You absolutely need a 10 turn pot if you're doing it this way but so long as you're OK with a eyeglass screwdriver adjustment (I usually set it and forget it), the pot makes this much simpler. If you wanted to mount it in a box and have the current setting external, you can get a panel mount 10 turn pot but expect to pay a couple dollars for one.
Also, with that resistor schematic, usually the best tolerance you can get for a resistor easily is 1%. That means current setting is at best +/-1% from where you set it. For example, 10ma would be in the range of 9.9 to 10.1ma. You're going to have to measure each current setting and make a note of exactly what it is so the Farday's electrolysis law equation provides accurate time. This usually isn't a problem with a pot as you can tweak it to be dead on or really close.
You can get 0.1% resistors but they're not as common, you may not be able to get all values and they're more expensive.
Also, given the sense element is the diode that makes up the base-emitter junction of the transistor, thats really not very accurate and the voltage changes some if the transistor heats up or cools down which will cause the current set-point to drift some. Also, the base-emitter voltage changes a bit from transistor to transistor and type to type. If you go with the resistor rotary switch version, you're still going to have to measure each current setting and write it down so you can accurately compute the run time.
Lets also talk about power rating of the right transistor (pass transistor). If you're running say 20ma and feeding in 60V and the voltage across your cell is 10V, that means 50V at 20ma needs to be dissipated within the transistor and thats 50*0.02 = 1 watt (no kidding). I don't know of any small TO-92 package transistor that can handle this much power. You'll need to use a TO-220 sized transistor for this one. The BC556 transistor listed is not capable of dissipating 1 watt and its not available in a TO-220 package. Its max (and for safe area, stay 30-40% lower than this so you don't brand yourself as it'll get noticably hot if you don't) is 0.625 watts. You really want a TO-220 transistor for this one if you're using higher voltages where a lot of that power needs to be dissipated in the transistor as its going to get somewhat hot.
At 30V supply with 10V across your cell, thats 20*0.02 = 400mw and here, the specified transistor should do it for you.
Remember, transistors are linear devices. If you put a voltage on one end and the voltage coming out the other is noticeably lower (supply, cell voltage), that voltage difference times current (watts) has to be absorbed by the transistor as heat.
A TO-220 transistor should easily be able to handle 2watts+ without a heatsink.
Whatever you do, keep the pass transistor (right one) as far away from the left one (sense transistor) as you can because if the right one gets hot or warm, if its close, it'll change the temperature of the left one and the current set point will drift a little. Even if you're going for broke and going with a TO-220 package, the same holds true. Using a transistor as a sense element, the base-emitter junction voltage will drift some with heat so keep it as far away from the pass transistor as you can.
Voltage regulator IC's use a circuit called a bandgap reference which produces about 1V as a reference and its rock solid stable over a very wide temperature range. You can get voltage reference IC's but then you're talking about needing to use an op-amp or comparator circuit to compare the reference voltage to that of the sense element and thats more complexity than its worth dealing with.
Everything in life is a compromise. The best you can do is make good choices. There is no such thing as "perfect".