Why would it be difficult? You can initially create the partitions, specifying more than you need.
Then run this script regularly:-
SELECT
t.name AS TableName, i.name AS IndexName, p.partition_number, p.partition_id,
i.data_space_id, f.function_id, f.type_desc, r.boundary_id, r.value AS BoundaryValue, p.rows
FROM
sys.tables AS t
INNER JOIN
sys.indexes AS i ON t.object_id = i.object_id
INNER JOIN
sys.partitions AS p ON i.object_id = p.object_id AND i.index_id = p.index_id
INNER JOIN
sys.partition_schemes AS s ON i.data_space_id = s.data_space_id
INNER JOIN
sys.partition_functions AS f ON s.function_id = f.function_id
LEFT OUTER JOIN
sys.partition_range_values AS r ON f.function_id = r.function_id AND r.boundary_id = p.partition_number
WHERE
t.name = 'YOUR TABLE NAME'
AND
i.type <= 1
ORDER BY p.partition_number;
This will show you all the partitions in the table. From this you can see which are in use.
I would then build a stored procedure to add new partitions once the number of free partitions drops below a certain number.
This would mean that your data inserts would never have to wait for a partition to be created.