I really don't understand what you mean...you may need to explain this better. If you are saying that you want the player to be able to input a number of workers for hire, then simply take the variable that stores the number and multiply it by the worker cost (20 if you want), and subtract that from Gold. You'll need a conditional branch in there too in case the player doesn't have enough money, so the character could say "Sorry, you don't have enough funds to hire that many workers" or something.
If I understand your second question correctly, you want there to be as many "workers" on screen as the quantity of the number insert variable. I don't think this can really be done efficiently without a script, but if you want to do it using events, you could do it this way:
Make several "worker" characters and place them where you like, then make each have a variable condition (the number insert variable), and number them from 1 to whatever you think the maximum number of workers should be. (So if you want the maximum number of workers to be 10, then you would actually have 10 worker events in your map editor, but they would only appear in-game as their variable condition is met).
That's pretty much the only way you could do it using events, since in RMXP there's no way to instantiate or "create" new characters in real-time.