I wouldn't use For Each Row() to delete rows. I think an even faster method would be to use DeleteRows. For example, if one wanted to delete rows where Column(1) has missing values, one could do the following:
dt = current data table();
rowsToDelete = dt << Get Rows Where( Is Missing(:Column 1) );
If( NRows( rowsToDelete ) != 0,
dt << Delete Rows( rowsToDelete );
You can supply the conditional clause you'd need within the Get Rows Where().