Create a user and associate it with an individual of an organization
If you set up a Contribution page to require 'on behalf of organisation', and include a Profile on the page that is set to 'require user creation' then the outcome is that John fills in the form, creates a contact record and a user record for himself, creates an organisation record, is linked to this as a current employer with permissions to edit that record.

If you want to create the individual and organisation contacts prior to him going to the form, ie at the backend, then you will need to eg, create the user and the individual via the 'create mode' of a Profile, then send him a link to login, or an email with a checksum so he can visit the page and have it prefilled.