Is it possible to limit access to WMS service for users who made more than X number of requests? Is there any way this can be done?
WMS standard defines only how the service should work and it is assumed that every request will get an answer. How to limit the usage of the service is not in the scope of the standard. I agree with @vince that it is a general IT task. WMS clients are sending just common http GET or POST requests. However, there is at least one module that is especially written for this purpose. I suggest to have a look at the GeoServer Control flow module https://docs.geoserver.org/master/en/user/extensions/controlflow/index.html
The control-flow module for GeoServer allows the administrator to control the amount of concurrent requests actually executing inside the server, as well as giving an opportunity to slow down users making too many requests.