Creating the plugin is not that difficult and by using the hook wp_head the CSS can be added to the <head>.
The problem is that there is no default hook defined for the beginning of the <body>. And because it is not defined, themes don't include a call to execute plugins at that point.
That means that for a plugin to add HTML right after <body> you must also change the templates of each theme to include a call to something like:
do_action('body_start');
Here body_start is the name of a new hook you define.
So it can be done with a plugin, but not without changing template files. And that's just what you didn't want.
Perhaps someone else with a solution?