Your code is creating a multitude of objects it doesn't need to create. Get the query setup and parameter out of the loop and setup the connection so it only has to be opened once. You also have to dispose your connection object when you're done with it. That is easily done with a using statement:
using (OleDbConnection con = new OldDbConnection(...connection string...))
{
string query = "DELETE FROM Print WHERE Id=@id";
OleDbCommand cmd = new OldDbCommand(query, con);
OleDbParameter idParam = new OleDbParameter("@id", OleDbType.Integer);
cmd.Parameters.Add(idParam);
con.Open();
for (int i = 0; i < dataGridView6.SelectedRows.Count; i++)
{
idParam.Value = dataGridView6.SelectedRows[i].Cells[0].Value;
cmd.ExecuteNonQuery();
}
}