Am I correct in assuming that the workstation restriction wouldn't really work in a terminal server environment?
No, this would not work on a Terminal Server since the machine name is the same. In this case, just apply a restriction set to a user.
If we were to use Role-Based Security is there a way that we could log the user in automatically based on the user name they used to log into terminal server?
Sure. You would just handle the login yourself instead of going through a login form. For example, you can login like you would for a web environment by calling the AuthenticateUser() and SetLoggedInUser(). You can find more about this in the help documentation:
Defining Security within the Application -> Programmatic Access -> Login Class -> Methods