I could not find any real documentation about this. I guess you knew about VS Docs, but it doesn't even scratch the surface.
Since there is a RecentProjects property used in a binding, there should be a type exposing such a property (or an implementation of ICustomTypeDescriptor, see MSDN Magazine). There is also a binding on the TeamFoundationClientSupported "property".
I found a property called TeamFoundationClientSupported in Microsoft.VisualStudio.Shell.UI.Internal, in a class called Microsoft.VisualStudio.PlatformUI.StartPageDataSource, but it is private, so cannot be used as is in a binding.
The constructor of this class contains quite a few lines like this:
base.AddBuiltInProperty(StartPageDataSourceSchema.CustomizationEnabledName, GetUserSetting(StartPageDataSourceSchema.CustomizationEnabledName, false));
...
base.AddBuiltInProperty(StartPageDataSourceSchema.TeamFoundationClientSupportedName, this.TeamFoundationClientSupported);
...
base.AddBuiltInProperty(StartPageDataSourceSchema.RecentProjectsDataSourceName, source3);
...
The last 2 are interesting: they "add a built-in property" called TeamFoundationClientSupported and RecentProjects...
Looking at the implementation at this method shows a simple dictionary with a key based on the property name (the first parameter) and the value being the second parameter. This dictionary is used by a method called EnumProperties in Microsoft.Internal.VisualStudio.PlatformUI.UIDataSource. Going through the chain of uses, we arrive at a class called Microsoft.Internal.VisualStudio.PlatformUI.DataSource (in Microsoft.VisualStudio.Shell.10.0), which implements ICustomTypeDescriptor. Thus, it explains how the properties are found by the binding system. I have not found how the DataSource type descriptor is linked to the StartPageDataSource class, but at least we can know the list of supported properties in the StartPageDataSource constructor.