I think your problem is understanding what is meant by "so we can do things". setInterval sets up a timer so that the specified function will be called every time the timer is up.
In the example given, the timer is every 2 seconds. This means that you can do something else in node.js while the timer is counting down. However in node.js there is only one thread so only one thing can execute at a time. The timer just gives the ability to say, when this time is up do something when nothing else is running.
So, for example, you could process network requests while the timer is counting down, you could read the contents of a file, you could parse some xml, etc.
I wrote code that uses a timer to check if a set of data was dirty. If it was then it would transmit the changes to all other clients. I had a listener on socket that would receive telemetry from a connected drone. If I cared about the telemetry then I would update the data. So I could update the data multiple times in a minute, while only check if I need to send an update every minute. So while the setInterval had set a repeating timer of every minute, when the function for the timer wasn't being executed, node.js could process any events from the listeners on the socket.
Note however, if your doing something during the time when the timer is up, then it node.js will have to wait until you finish before it can let the timer function execute.
c:\node server.js, you're running the code, and the interval is async, but you can't type on the command line ?