Yes it’s perfectly possible to create a multi-threaded windows service. Just spawn a new thread when you receive a message via your preferred way of handling things.
This is the manual way, you could also use a background worker:
Thread t = new Thread(() => {
// Do some work
});
There’s nothing preventing a windows service from working like any other application – except for displaying user interfaces.
solved Multithreaded Windows Service