Scusa qual è il problema? Dentro al layer "source" ce ne puoi mettere 100 di bottoni e di qualsiasi altra cosa tu voglia, con o senza PHP...
Il layer source è un normalissimo layer html che può contenere tutti gli oggetti che vuoi.
Codice PHP:
<div id="source" style="display: none;">
Contenuto del layer "source", pieno di codice da far visualizzare nel layer "target"...
etc etc etc...
<?php
for ($i = 1; $i <= 100; $i++) {
echo '<input type="button" id="input_$i" value="Button #$i">
\n';
}
?>
</div>
La proprietà innerHTML accede a tutto il contenuto del layer.