I've never done it, but it should be very feasible and sounds like an interesting project. Experimenting with programmable microcontrollers is on my list of fun things to do at some point.
Here are a few ideas:
You will need to be able to measure the cell voltage down to mV precision. To reduce noise it typically helps to use over-sampling. That is, you take, say, ten voltage readings in quick succession and average them to get the value you will use.
If you measure the voltage slope, I have always thought that the normalized dV/dC would be a better choice than dV/dt (where C is the charge supplied). To compute slopes some filtering is definitely needed to further smooth out noise, and you'd have to experiment with filter parameters for that.
To obtain the -dV termination point, you would record the maximum voltage ever seen and store that in a register. Then when and if the currently measured voltage is less than the maximum by the preset amount (3 - 10 mV typical), you terminate the charge.
One thing to note with high charging currents is that the cells will start to heat up significantly by the time that the -dV signal is detected. For cooler charging it would be nice to terminate before -dV. For an idea on this, search the back threads for a discussion of the inflexion point termination algorithm. This could be implemented well in a microcontroller and would give you an advantage over off-the-shelf chargers or ICs.