Можно вставить компонент в шаблон bitrix:catalog (где вызывается детальный, в т.ч. над ним), но не просто вставить, а засунуть в буфер интерпретатора, записать в переменную (функцией ob_get_contents - http://us2.php.net/manual/en/function.ob-get-contents.php), а потом уже эту переменную использовать в шаблоне. Пару раз приходилось так делать, никаких проблем не возникало (хотя не уверен что особо тестировалось с включённым кешом).
Код примерно такой:
[CODE]
<?php
ob_start();
/* код компонента */
$out = ob_get_contents();
ob_end_clean();
?>
[/CODE]
Переменную $out, кажется нужно будет сделать глобальной, точно не помню уже.