Создать самому виртуальный номер можно. Но для этого все равно потребуется реальная сим-карта и некоторые навыки в программировании.
Вот например на здесь рассказывают подробно как создать VoIP-GSM шлюз используя обычный 3G модем. Но для этого, как я говорил, нужны определенные навыки.
Есть более простые варианты, например тот же GoIP. Вот на хабре рассказывали, что и как. Это тоже актуально если расходы оправданы, так как шлюзы не самое дешевое удовольствие.
Так же на различных сервисах номера для приема смс разделяются на два типа: виртуальный номер и реальный номер. Виртуальный номер - это номера, у которых нет реальных сим-карт. В России таких номеров нет, чаще всего они встречаются в передовых технологических странах (США, ЕС). На такие номера сложно принять смс с сервисов, так как фильтры могут стоять как на стороне оператора этого номера, так и на стороне отправителя (есть триггеры, по которым сервис-отправитель может определить виртуальная это сим-карта, или реальная). Реальный номер - это классическая сим-карта, вставленная в какой-либо шлюз(например в один из описанных выше). Тут уже сервис-отправитель не опознает ваша ли это сим-карта или одна из сотен вставленных в смс-шлюз.
Сервисы на подобии receive-sms-online.com или onlinesim.ru предлагают в основном общественные номера. Где входящие смс могут видеть все посетители сайта. Но за то это бесплатно.
Есть платные сервисы, где можно получить номер в индивидуальное пользование и на долгий период. Это будет более безопасно, если использовать его для регистрации в платежных сервисах или соц сетях (если аккаунт нужен долго). Например на этом сервисе более 30 стран на выбор (правда есть и виртуальные и реальные номера). Иногда проходят акции, и если нужно получить смс только один раз, то могут дать бесплатно.
Так что все зависит от ваших потребностей и возможностей.