Как говорит @chiefbrownbotom, причина, по которой вам нужны разрешения на выполнение для типа таблицы, заключается в том, что таблица создается до (и, следовательно, вне) вызова процедуры Чтобы проиллюстрировать это, запустите трассировку SQL Profiler и вызовите ваш proc. Вы увидите нечто подобное, что может вас удивить ...
DECLARE @p1 TABLE AS YourTableType
INSERT INTO @p1 (col1, col2, col3) VALUES ('val1','val2','val3')
INSERT INTO @p1 (col1, col2, col3) VALUES ('val1','val2','val3')
...
EXEC usp_YourStoredProc @p1