Deberia haber algun metodo que deje borrar fila por su indice, pero al no tener ese componente no puedo verificarlo
Por lo pronto podrias eliminar una sola fila haciendo uso del RemoveRows en tu bucle for
Código Delphi
[-]
if state then
GridProcedimientos.RemoveRows(i, i+1);
GridProcedimientos.RemoveRows(i, i);
Saludos!