There is something very important which you, as a Spanish speaker, need to understand about the construction 'I have no...'. This construction is NOT the equivalent of the Spanish 'No tengo', and it is essential that you should be aware of this. In English, we can never negate a verb with the word 'no' in the way that you can in Spanish.
In fact, the word 'no' in a sentence such as 'I have no time' is negating the noun (time) - not the verb. The noun phrase 'no time' is the opposite of 'any time'. The 'no' in 'no time' is similar to the word 'ninguno' in Spanish.
There are phrases where you have a choice of using either 'no' with a positive verb, or 'any' with a negative verb. Here are some examples:
I don't have [any time] = I have [no time]
There isn't [any space] = There is [no space]
As you can see from my brackets [ ], even though 'I don't have any time' and 'I have no time' have the same meaning, the grammar is different. The word 'no' does not belong to the verb - it belongs to the noun - 'no time'. Here are some similar constructions:
I don't know anybody = I know nobody
I didn't go anywhere = I went nowhere
I don't have anything = I have nothing
In each of these cases, the verb carries the negative meaning in the first sentence while the noun carries the negative meaning in the second.
So, to answer your question - yes, they are both grammatically correct. As far as meaning goes, they are interchangeable in a few specific examples, as an alternative to 'not...any'. But from the point of view of structure, they are totally different, and it is only the similarity to Spanish which gives the impression that they are grammatically similar. If I were you, I wouldn't worry too much about 'I have no...'. It isn't nearly as useful as you think.