Ciao
È sempre il solito problema dei tipi valore e riferimento... Bounds è di tipo Rectangle, che è una struttura, quindi tipo valore, e non puoi pertanto modificarne le proprietà in questo modo.
Sostituisci
dataGridView1.Bounds.X = this.Location.X;
con
dataGridView1.Location = e.Location;
dataGridView1.Visible = true;
all'interno dell'evento MouseClick (this.Location ottiene la posizione del Form rispetto allo schermo, non la posizione del mouse)
Luca