I will also address the Haskell part.
First, I want to clear something up:
Instead of changing value of variables we create new variables in
functional programming when we need to update a variable.
That's not so accurate. We create new "variables" in FP when we need them, not when we need to mutate existing ones. We don't even think in terms of mutation when we do what you describe; we may just think we're creating a new value that's similar to one we have.
What you're describing with threads is a bit different. You're actually looking for a side-effect (increment a counter). Haskell, being pure, will not just allow you to throw side-effects without being very explicit of it. So in this case you will need to resort to reference types / mutable cells. The most simple one is called IORef and it's very much like a variable in this sense; you can assign a value, read the current value, and so on.
So, as you can see, when you're looking for these kind of stuff, you really do have just one copy of the counter.
The above is the essence of my answer, but you've asked concretely about threads so I'll respond to that as-well.
IORefs are not actually thread-safe. So there are MVars as suggested. They are not like regular variables, but they are close, and they get the job done elegantly. Generally and loosely speaking: they abstract variables and locking. I think you might find TVars easier though. They behave like IORef/variables, only that unlike both, they are thread-safe; you can compose their operations into one operation, and any operation done to them is done atomically (STM).
By the way, you might find ways to avoid state altogether, and this is very encouraged. E.g. you can have the two threads execute an asynchronous recursive function that remembers through an argument how many requests have been made, and later have it as a return value. The total requests count is the sum of requests all your threads returned. This can avoid the side-effect on the counter, but it could only yield you a result when the threads are finished. That's quite limited, so sometimes you might want that side-effect.