No, not really
You would have to parallelize the instructions in any way and many of them depend on the results of other instructions [1]. In addition to that, the arithmetic unit (the brain, that is really calculating) isn't usually the bottleneck.
To access and compute data they have to be stored. To make this fast, there are multiple memory layers (registers, Cache (Level 1,2,3), RAM). Two Cores (in an x86 processor) usually are only sharing the RAM (and maybe a L3 Cache). So you cannot simply split a program, because the other half would have the data it needs.
How Hyperthreading works
Hyperthreading is taking advantage of the time, the computing unit is waiting for something else.
It takes a long time to load a value from the e.g. RAM (AFAIK anywhere around 500 CPU Cycles). In this time, when the arithmetic unit normally wouldn't do anything, Hyperthreading runs the second process on the same core.
[1] That is also the point, where speculative execution tries to help. And maybe create some security holes (Spectre and Meltdown)