Per le checkbox, direi che le metti a mano accanto a ogni riga, imposti per ogn'una la proprietà visible=false, e nell'evento del button metti tutti nomi delle checkbox dicendo che visible deve andare a true.. Era questo che intendevi??
es:
checkBox1.Visible=true;
checkBox2.Visible=true;
checkBox3.Visible=true;
checkBox4.Visible=true;
checkBox5.Visible=true;
Aggiunta riga:
dataGridView1.Rows.Add(12); //aggiunge 12 righe vuote
Comunque, e questo non vuole essere un "riprenderti", ti consiglio di dare prima un occhio su google per le domande così rapide, perchè trovi valanghe di articoli che parlando delle datagridview. Se non usi un db, cerca qualcosa di simile a "datagridview modalità disconnessa", o fai ricerche mirate del tipo "aggiungere riga dataGridView".
La cosa migliore che puoi fare, e mi riferico ad ogni oggetto che userai su visual studio per la prima volta, è scrivere il nome, metterci un bel ".", e spulciarti tutte le proprietà e i metodi riferiti all'oggetto; una volta che lo conoscerai bene lo userai meglio, e vale per tutti.
A titolo di esempio, invece di usare le checkbox, dovrebbe esserci la proprietà "selectedRows" o qualcosa di simile. Per questi oggetti ci sono proprietà per fare qualunque cosa.