Нет, вы не можете этого сделать - универсальные значения используются, когда вы заранее знаете тип во время компиляции, однако в этом случае вы этого не делаете.
Я считаю, что то, что вы действительно хотите сделать, это что-то вроде этого:
public static object Merge(Type type)
{
object x = Activator.CreateInstance(type);
//Do some stuff with x
return x;
}
Ваш оператор foreach теперь выглядит немного иначе:
Parallel.ForEach(typelist, type =>
{
var task1 = Task.Factory.StartNew(() => Merge(type));
});