Can I force a dwarf to become sane?

Short Answer: No. Dwarves that go insane will not calm down.
Long answer: Using the lua console should do the trick with dfhack.

dfhack.gui.getSelectedUnit().mood = df.mood_type.None