An E36 that overheats crawling in traffic but stays fine on the highway has an airflow/fan problem — at speed, ram air cools the radiator no matter what the fans do, so a weak fan only shows itself at idle and low speed.
Two fans do two jobs:
- The engine-driven viscous clutch fan behind the radiator — the primary mover at low speed, which freewheels once its clutch wears out
- The auxiliary electric fan ahead of the condenser, which runs mainly for the A/C but has temperature stages that back up engine cooling when you're slow
So for this exact symptom the prime suspects are a worn viscous fan clutch and/or a dead auxiliary fan.
Rule out the supporting causes too: low coolant or an air pocket, a clogged radiator, a stuck thermostat, and the failure-prone plastic-impeller water pump (fit a metal-impeller one).