The profile property definition data types are stored in Host --> Lists (DNN Lists table) with a list name of "DataType" and no parent key. The collection of data types may be obtained and bound to a drop down list (ddlDataType in the example below) as follows (using the EntryID field and Value field of each list entry for the drop down list items value and text properties respectively):
Dim objListController As New DotNetNuke.Common.Lists.ListController
Dim dataTypeList As DotNetNuke.Common.Lists.ListEntryInfoCollection
dataTypeList = objListController.GetListEntryInfoCollection("DataType")
With ddlDataType
.DataTextField = "Value"
.DataValueField = "EntryID" 'or "Text" - see below comment
.DataSource = dataTypeList
.DataBind()
End With
The Text field of the ListEntryItem provides a string representing the fully qualified Namespace.Classname, AssemblyName which may be of more help to you rather than the EntryID if you are thinking of dynamically creating instances of the appropriate DNN EditorControl for a selected data type (using reflection and the Activator.CreateInstance method). For example for the "Integer" data type, the Text field is "DotNetNuke.UI.WebControls.IntegerEditControl, DotNetNuke".
Note that outside of their use in setting the data type for profile property definitions, the data type values are meaningless. Therefore, rather than trying to "reinvent the wheel" to make use of the DataType list, I would look closely at the source code not only for the profile property definitions, but also for the individual property editor controls, the CollectionEditorControl, PropertyEditorControl, SettingsEditorControl, ProfileEditorControl, etc.
I am currently extending my ContentDejour DNN Forge project to serve up its rotating content based upon any Profile Property (standard or custom) of the logged in user and spent quite a bit of time studying the source code to understand this entire topic - and have been very impressed with the capabilities and possibilities for further extension the property editor controls provide to the developer. Kudos to Charles Nurse for his excellent work on this!
For more information, here's a helpful set of blogs on Charles' DNN Developer Zone site:
http://dnndevcenter.com/Library/tabid/126/SectionId/2/Default.aspx