Change the headers content type with wp_remote_post

So, you set the headers of a request using wp_remote_post() and you expect that headers be used in the response. That is what I understand from you:

When I print the response content-type is still "text/html"

I think that you are missunderstanding the HTTP headers. Using wp_remote_post() you make a request and you can set the headers of the request to whatever you need but obviously you can not control the headers of the response.

The headers of the response depends absolutely in the remote server.