Firstly, it is easy. A Timer is about as simple a component as you can possibly get. Secondly, and I'm not having a go at you when I say this, as you get more experienced you will realise how silly that question about why you would not want to keep the grid up to date is. I have never created an application that required the data to be refreshed continually like that and you will likely encounter very few yourself. It may even be that this one doesn't require it and you're over doing it.
Anyway, with regards to the Timer, you would start by adding one to your form and setting its Interval property. If you want something to happen every 30 seconds then set the Interval to 30,000 (milliseconds). You then handle the Tick event. You create the event handler the same way you would a Click event handler for a Button. Again, just like a Button.Click event, you put the code you want executed in the event handler. You then call the Start and Stop methods of the Timer to do the obvious. Setting the Enabled property to True and False is equivalent.
The actual refreshing part, takes a bit of thought and planning. It's practical to simply throw away everything you've got and re-get everything from the database. For one thing, how will you ever edit a record if it disappears after 30 seconds? Also, it's very inefficient to keep getting the same data over and over. Ideally you would only be retrieving the data that has changed since you last retrieved it, but how are you going to determine which records have changed and which haven't?
That's where the planning comes in. You need to add a column to your database table(s) to contain the time of the last modification. You also can't ever delete any records. If records need to be removed then you need a Boolean column to indicate that and logically deleting a record entails flipping that flag and setting the modified time. When you retrieve the data for the first time you will get all the data and then each subsequent query will only retrieve the data for which the modified time is later than the latest value in your current data. Because you're not physically deleting any records, you will also be retrieving those records that have been logically deleted, so you can filter them out at the UI level. You also don't need to discard the data you've already got. You can configure your data adapter the way you want to handle records that have changed.