OK - in your example it appears that you know what column1 is...for the sake of this example, we will call it VARCHAR(50)
CREATE PROCEDURE myProc ( @tempTable VARCHAR(50) ) AS
DECLARE @colReslt VARCHAR(50), @sql NVARCHAR(1000), @paramDef NVARCHAR(1000)
SELECT @sql = N'SELECT @colReslt = Column1 FROM ' + @tempTable,
@paramDef = N'@colReslt VARCHAR(50) OUTPUT'
EXEC sp_executesql @sql, @paramDef, @colReslt = @colReslt OUTPUT
SELECT @colReslt 'Column1'
GO
At least this works in my test unless I am missing something obvious.
Guarddata-