You can add a check box column to your grid in the designer. You can then handle the CellContentClick event of the grid to be notified when the user checks or unchecks the box. The 'e' parameter in that event handler will give you the ColumnIndex of the cell, so you can test whether it was the check box column or not. If it was then 'e' will also give you the RowIndex. Using the RowIndex, you can get the row and then, using the ColumnIndex, you can get the cell. You can then get the Value of the cell and set the Selected property of the row accordingly.
There's a bit of a gotcha there though. The CellContentClick event is raised when the user clicks the box in a cell but the Value of the cell doesn't actually change until focus moves to another cell. As such, you'll be looking for the opposite value to what you might think, i.e. if Value is False then Selected should be True and vice versa.
There's another slight issue too. If you check a box to select a row, the user might then unselect it without clicking the box and, unless you write code to do so, the box will remain checked even though the row is not selected.