To put it simply, you're always going to get some kind of lag when you're streaming. Ping, in this case, is not directly affected; it's influenced by your remaining bandwidth while you're streaming.
How much lag depends on your upload speed and your stream's bitrate. For example, I have a 1 Mbit/s upload speed, and everyone in my house suffers when I'm trying to upload a YouTube video because uploading files always uses as much bandwidth as possible (by default).
Streaming, on the other hand, is first encoded by either variable bitrate (VBR) or constant bitrate (CBR). In variable bitrate, you're selecting a quality (from a range of numbers) or constraining the bitrate by a maximum and minimum. This works when the stream doesn't need all of the bandwidth, but if you're moving around a lot, then your stream's quality will suffer greatly. In constant bitrate, you're just telling the encoder what bitrate you want. That's it. The bitrate is more stable, and the encoder will take advantage of any bandwidth left over (thus increasing quality, but be aware that some of those bits are actually stuffed ones). But back to the question.
You'll want to set the encoder for OBS to CBR and lower your bitrate so that it's about two-thirds or three-fourths your upload speed. I'd set it between 512 Kbps to 768 Kbps in my case. That way, your game will have plenty of bandwidth left over to send packets to the server and download player states back to you.
(I'm not exactly sure how ISPs bottleneck download and upload speeds, but I'm guessing that your download and upload are summed together and throttled down if needed.)