try
DataTable dt1 =
DataTable dt2 =
DataTable dtDifference = new DataTable();
dtDifference.Columns.Add("Domain_User");
dtDifference.Columns.Add("Installed_Software");
var list1 = dt1.AsEnumerable().Select(k => (new { user = k["Domain_User"].ToString(), sw = k["Installed_Software"].ToString() })).ToList();
var list2 = dt2.AsEnumerable().Select(k => (new { user = k["Domain_User"].ToString(), sw = k["Installed_Software"].ToString() })).ToList();
list1.AddRange(list2);
var diff = list1.GroupBy(k => new { Domain_User = k.user, Installed_Software = k.sw }).Where(k => k.Count() == 1).ToList();
diff.ForEach(k => { dtDifference.Rows.Add(k.Key.Domain_User, k.Key.Installed_Software); });
datagridview3.datasource = dtDifference;