Typically, this is done on a low budget by installing VNC on the client PCs, and Linux on the servers. I realise that you have Windows 2008, but if you have underutilized rack servers then it it may save even more money to put Linux on one or more of them instead of Win2008.
Or, if you cannot touch the server OS, you could still use HyperV (or install Virtualbox) and create a number of Linux virtual machines, each of which could support several users.
If you go the VM route, be careful about how you distribute users. For instance if you have 3 rooms of PCs, do not create one server per room. Instead create one server for X users where X is a number you must reach by a bit of trial and error. Then, in any room, try to ensure that neighboring PCs are on different VMs. This could be as simple as login info taped to the monitor. Then, if one VM crashes or locks up during class, the users of that can follow along with their neighbor's session.
Note, that if there is some Windows software package that is absolutely necessary, it may be possible to install WINE on the Linux VMs and run the package in WINE. Again, testing is needed, but the upside is that the people who do all of this work will learn a lot.
And even if you can afford Windows terminal server CALs, the next person to read this might not have the budget.
By the way, if you really want a dumb terminal concept, just install Putty on all of the machines and use that to log into a green screen non-GUI Linux shell prompt. And you could even install DOSBOX on Linux and set up the logins to go directly to DOS.