El problema es que tu no vas a escribir en una columna, vas a escribir en una celda.
Mira esto:
Código:
for (int i = 0; i < dtgDefectos.Rows.Count; i++)
{
double Porcentaje = (Convert.ToDouble(dtgDefectos["KilosDef", i].Value) /
Convert.ToDouble(dtgLotes["KilosTot", dtgLotes.CurrentRow.Index].Value)) * 100;
dtgDefectos["Porcentaje", i].Value = Porcentaje;
}
Recorro las Rows de la DataGrid con un ciclo for, y para cada posicion i en la en la grid, le asignamos un valor en la columna Porcentaje
Saludos