Should I use tempdb or memory optimized table variable?
Parallel Execution:

SQL Server does support parallel inserts into temp tables in SQL Server 2014 with the SELECT INTO syntax. In SQL Server 2016 parallel inserts are also supported into temp tables that are heaps. In SQL Server 2016 SP1 parallel inserts into heaps require the TABLOCK hint.

A query that modifies table variables will not contain any parallel zones. However, a query that references a table variable may run in parallel.

Memory:

Yes, memory-based tables can only be in RAM and cannot spill to disk. See this article.

Performance Boost:

My advice would be to first measure the performance of your stored procedure to confirm that the temp tables are the source of the unacceptable performance. If you confirm that consider the following simpler options first:


Only save data to temp tables that you need. Apply filters when inserting data as soon as possible. 
Create columns with the right data types. 
Create indexes as appropriate for your temp tables.
Drop your temp tables as soon as you no longer need them. 
Make sure that your tempdb database follows best practices. This could be a separate post but here's one resource.


If none of that works and you feel confident that you understand the limits of memory optimized table variables go ahead and test your procedures with them. The previously referenced blog post does mention that as a use case:


  As replacement for traditional table variables, and in some cases for #temp tables that are local to a stored procedure.  This is particularly useful if there is a lot of tempdb contention in the system.