To output multiple result documents from a single transformation you need XSLT 2.0 (the xsl:result-document instruction) unless you are prepared to use vendor-specific extensions.
To do joins in XSLT it's generally easiest and most efficient to use keys:
<xsl:key name="k" match="Product"
use="concat(displayedin/@sect, '/', displayedin/@subsect)"/>
<xsl:for-each select="Structure/Section/subsection">
<xsl:result-document href="...">
<xsl:apply-templates select="key('k',
concat(../Title, '/', ./Title), document('Products.xml')"/>
</xsl:result-document>
</xsl:for-each>
Then just write a template rule that matches Product.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference