The only way I see doing this without a command, view or stored proc (or something similar if you are not using a SQL db) is using sub reports which I hate to do.
In a view, stored proc, command i would union HOST to GUEST also creating another field inserting NULL if the status='unregistered' and a PK or a 1 if the status='registered'
then join this unioned result back to HOSTS table.
this way you end up with
John Doe registered Tim Registered 1
John Doe registered Bill Registered 1
John Doe registered Jane Unregistered NULL
John Doe registered Frank Unregistered NULL
John Doe registered John Doe Registered 1
Mark Doe unregistered Mary Registered 1
Mark Doe unregistered Jill Registered 1
Mark Doe unregistered Andy Registered 1
Mark Doe unregistered Mark Doe Unregistered NULL