I'm not sure how the "things" would fit into this model, but I might begin to tackle the child/person sponsorship this (Drupal-specific) way:
- Create a custom field for individuals (and/or potentially use a separate sub-type based on Individual) to indicate that they are available for sponsorship
- Create a relationship such as "Sponsor of/Sponsored by"
- Create a View that lists all contacts that are available for sponsorship and do not have an active "Sponsor of/Sponsored by" relationship
- Create a Membership type with the settings for your sponsorship(s) (e.g. monthly/annual/etc.) Potentially use Word Replacement (Administer > Customize Data and Screen > Word Replacement) to change "Membership" to "Sponsorship".
- Create a custom Webform-CiviCRM form that has two contacts: first contact is the sponsor (filling the form), second contact is the person to be sponsored (this could be filled via the URL with contact ID so links from the View could prefill this value, and/or an autocomplete field for searching). This form could also be set up to take a required contribution towards a membership/sponsorship of the type you created. The form could also be set up to create a relationship between the two contacts (which should then remove the second contact from the list of people available for sponsorship).
Obviously thorough testing would be needed, and I don't recall off-hand whether Webform-CiviCRM allows you to set up recurring payments or if you'd have to rely on membership reminders to have them come back to make subsequent payments.
I suppose the places could be set up in a similar way using a subtype of Organizations, potentially with different rules in Views (for example, you may want to allow any number of people to sponsor a place, I don't know).
Some of your more complex functionality may be more difficult to fit in (such as partial payments or a combined sponsorship among multiple people), and I'm not sure about how I'd handle the things (like projectors) in this model.
EDIT: It would be a different workflow then described above for the 'things' but you might be able to set up a contribution page with these items as the 'premiums' offered. (e.g. "Make a donation of at least $150 and you can select a projector for a school...")