Here you have different options.
Creating a new Account, Contact, Opportunity
When converting a lead into a new Account, Contact and Opportunity, all 3 records are created with the same owner, this defaults to the same owner as the Lead when you started your conversion. Upon conversion, you still get the possibility of changing the owner to someone else. By selecting another user in the lookup dialog.
One thing to keep in mind is, if the Lead is owned by a Queue, you must define a Record owner, as Accounts and Contacts cannot be owned by Queues.
Merging a Lead into an existing Account
When converting a lead, and you choose to merge the lead in an existing account, by choosing an existing Account in the Account Name list, or by using the Lookup dialog, you will not change the existing Account data, thus the existing account owner doesn't change.
However, since you are creating a new Contact (and possibly) a new Opportunity in the account, that owner is still decided by the same Lookup dialog when converting a Lead as explained before.
Documentation on the previous 2 methods
Converting a Lead from Apex
This is a bit different from the others, but in a sense, it's exactly the same. The only difference is that you can set the owner from apex by using the function setOwnerId()
if you choose not to provide an ownerId, the same Owner is used as the lead (unless the owner of the lead is a queue, then an Owner must be defined, and the conversion will fail), and the same goes for converting from apex in an existing account, the account owner doesn't change, but the lead/opportunity does.
From the documentation:
setOwnerId Specifies the ID of the person to own any newly created
account, contact, and opportunity. If the application does not specify
this value, the owner of the new object will be the owner of the lead.
This method is not applicable when merging with existing objects—if
setOwnerId is specified, the ownerId field is not overwritten in an
existing account or contact.
I encountered this issue recently myself. It has to do with the permissions and relative positions in the role hierarchy of the users that are involved.
When a user obtains View access (which is included, of course, with record ownership) on an Opportunity, they also receive an Implicit Parent Share (read only) to the Opportunity's Account. What's going on here is that the Opportunity Owner has full permissions on the Opportunity, but does not have permission to share the parent Account. Salesforce therefore prohibits the ownership transfer, because the owner doesn't have the right to create that Implicit Parent Share.
The System Administrator has Modify All Data and is likely at the top of the role hierarchy, so he/she has permission to perform this share. The Opportunity's owner would need to be above the Account owner in the role hierarchy, or have similar Modify All permissions, to allow the transfer to go through.
The workaround is for the Account owner, or another user who has full permissions on the Account, to either manually share the Account to the new Opportunity owner or to add that user to the Account Team. The ownership transfer will then go through.
Best Answer
I believe this is currently not possible to do via VF. You can add collaborators under the Shared WIth section of the record. It may still be possible to do via some 3rd party tools but at least there seems to be no official way of doing this. Read more here