Можно занести результат Interselect в словарь элемент - количество вхождений, потом пробежаться в цикле по листам, подсчитывая конкретное количество. Что-нибудь вроде
var lst1 = new List<string>(){"1", "2", "3"};
var lst2 = new List<string>(){"4", "2", "3"};
var intersect = new List<String>(lst1.Intersect(lst2));
var res = new Dictionary<String, Int32>();
intersect.ForEach(el => res.Add(el,0));
foreach (var el in lst1)
if (res.ContainsKey(el))
res[el]++;
foreach (var el in lst2)
if (res.ContainsKey(el))
res[el]++;
foreach (var el in res)
Console.WriteLine("{0}: {1} раз(а)", el.Key, el.Value);