I don't think it's possible but just wanted to know. For example I have a domain and the main website hosted by company A and would like to have a blog managed and hosted with company B. So I need a new subdomain 'blog.mydomain.com'. Can I get the subdomain hosted elsewhere so that company B can easily manage this without having to point the A-record at company A to point to the new host?
Sub-domains are not purchased or registered. You are free to create one for yourself anytime you like.
Domain names are registered and tied to an IP address. You most likely do this with your registrar.
Sub-domains are created by you in two parts:
In your DNS, again, often the registrar is where this happens, you would create a CNAME (alias) record that points your sub-domain blog.example.com to example.com. If you are not sure how to do this, call the registrar technical support.
On you web server, you create a site blog.example.com. If you are not sure how to do this, call your web host technical support.
You do not have to host your sub-domain using the same host and web server. It is far easier if you do. However, if you do not, then instead of a CNAME, you would use an A record to tie your site blog.example.com to an IP address supplied by the new host.
You may not be able to see your sub-domain right away. It takes time for DNS servers to update. Some query the SOA (statement of authority) for the sub-domain and update immediately, while others query the up-stream DNS or cache entries which may not have been updated yet. So you may have to be patient.
Once you are able to access your sub-domain, you can upload your site or scripts.