El archivo .xlsx es en realidad solo un archivo de compresión (archivo zip) por lo que si realmente desea agregar un archivo oculto, entonces puede agregar un archivo .xml al archivo. De esa forma, Excel ni siquiera sabría que estaba allí.
Cambie el nombre de un archivo .xlsx a .zip, extráigalo, agregue su archivo, luego seleccione el contenido del archivo .zip y vuelva a archivarlos. Cambie el nombre a .xlsx y tendrá su archivo oculto .xml allí. (NOTA: No comprimir la carpeta de nivel superior, sólo los contenidos)
Usted puede hacer esto en C# usando una biblioteca zip como SharpZipLib: http://www.sharpdevelop.net/OpenSource/SharpZipLib/
ACTUALIZACIÓN: Este archivo "oculto" se no se conservará si el usuario guarda el archivo desde Excel. La mejor idea que se me ocurre para ese escenario es invocar el código como parte de una macro de VBA incrustada en la hoja.
Este enlace contiene información útil sobre la manipulación de las partes de un paquete de oficina: http://msdn.microsoft.com/en-us/library/aa982683.aspx
El core.xml y app.xml (en la carpeta docProps) contienen las propiedades del documento y podría ser una buena ubicación para almacenar adicional información xml
¿Debo utilizar un objeto OLE incrustado? ¿O una parte personalizada? – user542393
¿Cuál es el propósito de almacenar este xml en el archivo? –