In exchanges like Binance when a user wants to deposit coins in bitcoin or in other coins, per user receives a unique public key?Do they have to generate pair key private/public key for each user in each coin?
I suppose they must be using a HD wallet for each users, but since one you send them your coins, everything happen in their back end they can do everything they want with them, especially for coins that dont support HD wallet, they could just generate private key then link them together in one of their database.
Or there is a way that we can have many public key for a special private key and Binance had one private key and unlimited public key related to that?
Yes, this kind of "special private key" is called a Hierarchical Deterministic Wallets and will allow you to generate an infinite amount of private key and so public keys, addresses derivated from a master seed, and so if you know this seed you can link those private keys together
This technology is used in personal wallet software like mobile wallet, but as I said since we dont have access to the back end of exchanges like binance they could use other tactics to organize their users funds.