First up, don't create objects that you never use. Why create a new Dictionary, only to throw it away the very next line with one you get from somewhere else? If GetCategoryCollection is going to give you a Dictionary object, why are you creating one on the previous line that you never use?

As for the question, you would have to build the DataTable schema yourself, then loop through the items in the Dictionary and add a DataRow for each one. I don't know what a UHCategory is but, as an example:
csharp Code:
  1. DataTable table = new DataTable();
  2.  
  3. table.Columns.Add("CategoryID", typeof(Guid));
  4. table.Columns.Add("CategoryName", typeof(string));
  5.  
  6. foreach (KeyValuePair<Guid, UHCategory> category in categories)
  7. {
  8.     table.Rows.Add(category.Key, category.Value.Name);
  9. }