How to lock a Row while I'm using it
Based on your edit, all writes lock exclusively.

No other process can read the row(s) being written unless


you've been silly and are using NOLOCK
you have snapshot isolation where the last committed row is read


There is usually no need to add lock hints in day to day code.

As to why you (apparently) have a table lock, this can be caused by no index on ID. The table is being locked because all rows have to be looked at.