Stock Browser splitting HTTP POST requests into separate TCP segments
The browser doesn't directly control that; it's the kernel's choice, since the kernel is where the TCP implementation lives.  However, one way the application can influence it is by setting the TCP_NODELAY option on the socket, which requests that the kernel disable Nagle's algorithm and send each chunk of data as soon as possible.

This may be an optimization:  since many HTTP requests contain only headers and no body, it's better for the kernel to send a packet with the headers immediately, instead of waiting a little while to see if the browser produces any more data that could fit into the same packet.