Talvez a forma mais rápida, mas não a mais correta, seria gravar os valores em uma string e simplesmente imprimir tudo junto, tente algo parecido com isso.
dim v_prod as string = ""
for col as int32 = 0 to grid.rows.count - 1
v_prod &= grid("COLUNAPRODUTO", col).value.tostring & "...." & grid("COLUNAPRECO", col).value.tostring
next
na sua impressão concatene a string
e.Graphics.DrawString("Compra efetuada com sucesso!!" & vbcrlf & v_prod, font1, Brushes.Black, 40, 150)