Yes, this can be done by creating a custom but simple virtual service that continuously loop every X amount of time. The time can be set through a number of ways. One way is to add a Scripted step at the end of the model, where you can add a line of code such as: Thread.sleep(1000); // sleep for 1 sec
So I would imagine your VSM should have at least 3 steps in it:
Listen/Marker -> Custom Step to Monitor Folder -> Scripted Step to sleep
Followed by the Scripted step to sleep, you should make it loop back to the beginning of the VSM (the "Listen"/"Marker" step).
The "Custom Step to Monitor Folder" can also be a Scripted Step with some code to read files from a folder to determine if changes have been made. If a change has been made then do some action within the step or make it go to another step that does some action based on the change in the folder.