You may find the following is fast (on the assumption that all the inserts are into the same table)
BEGIN
INSERT INTO <my_table>
SELECT <blah1>
UNION ALL SELECT <blah2>
UNION ALL SELECT <blah3>
...
UNION ALL SELECT <blah1000>
END
This is one big insert instead of 1000 small inserts. This reduces many of the overheads and often runs significantly faster.
As a pain, however, this also means the entry into the transaction log is bigger. When you get to millions of inserts, you might find it becomes faster to do it in batches.
UNION to combine many small operations in to one.
Several smaller operations to have less impact on the transaction log.
[Probably talking tens/hundred of thousand of records, or more]