Well, Dwarf Therapist is written in C++ and uses the Qt framework for the user interface in order to be platform independent (Linux, MacOs and Windows).
Dwarf Therapist access directly the memory of the Dwarf Fortress process for getting/setting the data it needs.
DFHack is a middleman between DF and the community developed plugins. These plugins can be written in lua, ruby or C++.
Also, and this is important, is possible to access to DFHack/DF via RPC (Remote Procedure Calls). In this mode, you can send commands to DFHack and it will execute / get data from DF.
If you want to do a user interface similar to DwarfTherapist, the best way I think is to use Qt with the appropiate bindings (native C++ or PyQt for python) and RPC for connecting to DFHack/DF. There's already one project for using DF with the Iphone that uses a native MacOs GUI and connect via RPC to DF.
I'm doing something similar in order to provide a copy of all Dwarf Fortress data structures available via RPC, so you can build, for example, a Dwarf Fortress external companion window that shows additional data that the game don't show.
If you decide to use the DFHack way, visit DFhack github project page or go to the IRC #dfhack channel on Freenode where all your questions/doubts will be answered.
Greetings